news 2026/6/21 4:24:16

c++中struct和class的区别小结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
c++中struct和class的区别小结

前言

在C++中,class和struct都是用于定义自定义数据类型的关键字,但它们之间有一些区别。这些区别主要涉及成员的默认访问权限和继承。

正题

成员的默认访问权限:

  • 在class中,默认情况下,成员的访问权限是private,这意味着除了类的内部,其他地方无法直接访问类的私有成员。
  • 在struct中,默认情况下,成员的访问权限是public,这意味着类的外部也可以直接访问结构体的成员。

继承:

  • 当使用class定义类时,默认的继承访问权限是private,这意味着基类的成员对派生类是private的,除非通过继承控制符进行了显式修改。
  • 当使用struct定义类时,默认的继承访问权限是public,这意味着基类的成员对派生类是public的,除非通过继承控制符进行了显式修改。

以下是一个示例,演示了class和struct之间的区别:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

#include <iostream>

classClassExample {

intprivateMember;

public:

intpublicMember;

ClassExample() : privateMember(0), publicMember(0) {}

voidShowPrivate() {

std::cout <<"Private: "<< privateMember << std::endl;

}

};

structStructExample {

intprivateMember;

public:

intpublicMember;

StructExample() : privateMember(0), publicMember(0) {}

voidShowPrivate() {

std::cout <<"Private: "<< privateMember << std::endl;

}

};

intmain() {

ClassExample classObj;

StructExample structObj;

classObj.publicMember = 42;

structObj.publicMember = 42;

classObj.privateMember;// 无法访问,因为 privateMember 是 private 的

structObj.privateMember;// 可以访问,因为 privateMember 是 public 的

return0;

}

总之,class和struct的主要区别在于默认的成员访问权限和继承访问权限。然而,这两者在其他方面都可以用来定义类,包括成员变量、成员函数、构造函数等。选择使用哪个关键字取决于你希望如何组织和访问类的成员。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/21 4:23:27

Java RSA工具类实战:密钥生成、格式转换与签名验签全解析

1. 项目概述&#xff1a;为什么我们需要一个自研的RSA工具类&#xff1f;最近在做一个涉及用户敏感数据传输的项目&#xff0c;对接的第三方平台要求使用RSA非对称加密来签名和验签。我本以为用Java自带的java.security包分分钟就能搞定&#xff0c;结果却踩了一连串的坑。比如…

作者头像 李华
网站建设 2026/6/21 4:23:06

Java原生HttpURLConnection深度解析:流式处理与生产级实践

1. 别再用 Apache HttpClient 了&#xff1f;Java 原生 HttpURLConnection 其实够用且更轻量你是不是也经历过这样的场景&#xff1a;项目刚启动&#xff0c;团队技术选型会上&#xff0c;有人拍板“上 Apache HttpClient 吧&#xff0c;功能全、文档多、社区稳”&#xff1b;结…

作者头像 李华
网站建设 2026/6/21 4:20:48

给自动交易程序增加节日过滤规则,非交易日跳过行情检测。

自动交易程序&#xff1a;增加节日过滤规则&#xff0c;非交易日跳过行情检测一、实际应用场景描述在 A 股自动交易系统的实际运行中&#xff0c;交易日历&#xff08;Trading Calendar&#xff09; 管理是最基础却最容易被忽视的环节。一个没有节日过滤的交易程序&#xff0c;…

作者头像 李华
网站建设 2026/6/21 4:19:15

从变分推断到同义变分推断:在语义空间进行率失真权衡

1. 从“压缩”到“理解”&#xff1a;一个被忽视的视角在机器学习和深度学习的实践中&#xff0c;我们常常把模型训练看作一个纯粹的优化问题&#xff1a;给定数据&#xff0c;调整参数&#xff0c;最小化损失函数。然而&#xff0c;如果我们换一个视角&#xff0c;把模型看作一…

作者头像 李华
网站建设 2026/6/21 4:19:06

微信数据库解密终极指南:3步轻松恢复聊天记录

微信数据库解密终极指南&#xff1a;3步轻松恢复聊天记录 【免费下载链接】WechatDecrypt 微信消息解密工具 项目地址: https://gitcode.com/gh_mirrors/we/WechatDecrypt 还在为无法备份微信聊天记录而烦恼吗&#xff1f;想要更换手机却舍不得那些珍贵的对话&#xff1…

作者头像 李华
网站建设 2026/6/21 4:17:23

哔哩下载姬终极教程:三步轻松掌握B站视频批量下载技巧

哔哩下载姬终极教程&#xff1a;三步轻松掌握B站视频批量下载技巧 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#…

作者头像 李华