关于C++ 的struct和类

zjian1425 2017-06-12 02:19:09
感觉很相似这两个东西,他们之间是什么关系啊,类是struct的延伸么?还是?
...全文
308 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ztenv 2017-06-21
  • 打赏
  • 举报
回复
class和struct在c++中除了成员的默认访问级别不同外,其他的都一样(当然类型是不同的)。
yeonon 2017-06-20
  • 打赏
  • 举报
回复
C++ primer 里有提到,处理默认访问权限不一样,其他基本没啥区别。
赵4老师 2017-06-13
  • 打赏
  • 举报
回复
《深度探索C++对象模型》 《C++反汇编与逆向分析技术揭秘》
幻夢之葉 2017-06-13
  • 打赏
  • 举报
回复
引用 7 楼 bokugakedainaimashi 的回复:
楼上说的不然,class强大的继承性,多态性,封装性使它与struct有了本质的区别。
你理解的struct是C的struct C++中的struct完全可以跟class一样子使用,可以有封装,可以被继承,可以多态,可以声明为虚基类等等
paschen 版主 2017-06-13
  • 打赏
  • 举报
回复
引用 5 楼 zj19941201 的回复:
[quote=引用 4 楼 jianwen0529 的回复:] [quote=引用 3 楼 sdghchj 的回复:] 除了默认访问权限外还有一个区别:结构体所有成员变量的内存布局一定是按成员先后顺序分布的,而类的成员只能保证同一权限域里的成员是顺序分布而不同权限域的成员就不一定了。
那struct也有多个访问权限段和虚函数之类的呢?[/quote] struct里面也可以设类似于private与public这一类权限域么?[/quote] 都可以设置,只是它们默认的不同
paschen 版主 2017-06-13
  • 打赏
  • 举报
回复
C++里除了struct成员默认是public class默认是private外,其他都是一样的
文学第四 2017-06-12
  • 打赏
  • 举报
回复
楼上说的不然,class强大的继承性,多态性,封装性使它与struct有了本质的区别。
幻夢之葉 2017-06-12
  • 打赏
  • 举报
回复
引用 5 楼 zj19941201 的回复:
struct里面也可以设类似于private与public这一类权限域么?
C++中是可以的,你可以完全跟class一样写,除了默认访问权限的区别 可以理解为双胞胎,一个性格内向一个性格开朗 另一个不能替代的是模板中指定模板参数只能使用class或typename,不能用strut
zjian1425 2017-06-12
  • 打赏
  • 举报
回复
引用 4 楼 jianwen0529 的回复:
[quote=引用 3 楼 sdghchj 的回复:] 除了默认访问权限外还有一个区别:结构体所有成员变量的内存布局一定是按成员先后顺序分布的,而类的成员只能保证同一权限域里的成员是顺序分布而不同权限域的成员就不一定了。
那struct也有多个访问权限段和虚函数之类的呢?[/quote] struct里面也可以设类似于private与public这一类权限域么?
幻夢之葉 2017-06-12
  • 打赏
  • 举报
回复
引用 3 楼 sdghchj 的回复:
除了默认访问权限外还有一个区别:结构体所有成员变量的内存布局一定是按成员先后顺序分布的,而类的成员只能保证同一权限域里的成员是顺序分布而不同权限域的成员就不一定了。
那struct也有多个访问权限段和虚函数之类的呢?
sdghchj 2017-06-12
  • 打赏
  • 举报
回复
除了默认访问权限外还有一个区别:结构体所有成员变量的内存布局一定是按成员先后顺序分布的,而类的成员只能保证同一权限域里的成员是顺序分布而不同权限域的成员就不一定了。
lanxingxing16 2017-06-12
  • 打赏
  • 举报
回复
在以前的扩展,没有取消,保留了c中的struct~
lzm_cn01 2017-06-12
  • 打赏
  • 举报
回复
成员的默认访问权限不同,struct是public的,class是private的,除此之外没啥区别。

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧