C++中有class,为什么还要用结构体?

要努力闪光的人 2017-09-27 04:40:19
有什么区别吗?在c++里看到结构体有种抵触感,不想看了就
...全文
1782 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
真相重于对错 2017-09-28
  • 打赏
  • 举报
回复
这种博客不看也罢
真相重于对错 2017-09-28
  • 打赏
  • 举报
回复
引用 14 楼 tayuC 的回复:
还有一篇文章也是在说结构体和class的区别
引用
http://blog.csdn.net/haiross/article/details/44781767
那篇文章有错误 把C# 或者精确的说.net 和 C++搞混了 #include "stdafx.h" struct ms{}; struct md:ms {}; int _tmain(int argc, _TCHAR* argv[]) { return 0; } 这样的代码没有问题。
  • 打赏
  • 举报
回复
还有一篇文章也是在说结构体和class的区别
引用
http://blog.csdn.net/haiross/article/details/44781767
  • 打赏
  • 举报
回复
大家的讨论也是很有用的 到底struct有没有默认的构造析构函数??
引用
struct的初始化及其构造函数 http://blog.csdn.net/niuox/article/details/7253374
jena_wy 2017-09-28
  • 打赏
  • 举报
回复
struct默认public,class默认private。
paschen 版主 2017-09-27
  • 打赏
  • 举报
回复
向下兼容C呗 其次,struct中成员默认是public的,class中默认是private
酱油党 2017-09-27
  • 打赏
  • 举报
回复
遗留问题,先有的C和struct,你总不能到C++就不支持struct了吧
真相重于对错 2017-09-27
  • 打赏
  • 举报
回复
c++因为是从c发展来的,一开始还被人叫做带类的c 你总不能用了c++,原来的语法就不行了吧?
真相重于对错 2017-09-27
  • 打赏
  • 举报
回复
引用 8 楼 ccssddnn218 的回复:
谈谈我对这两个关键字的感受,仅供参考,原则是“只要喜欢,怎么用都行”: struct叫“结构”,class叫“类”。程序里有些地方用“结构”比用“类”更多合适!比如: 假如,某一天你通过一种有效途径,发现了某种未知文件的数据规律,是按如下方式排列的: 每6个字节为一组,有N组这样的数据;每一组又分为前2个字节加上后4个字节! 0xA1 0xA2 0xB1 0xB2 0xB3 0xB4 0xA1 0xA2 0xB1 0xB2 0xB3 0xB4 0xA1 0xA2 0xB1 0xB2 0xB3 0xB4 ...... 你如何通过程序来解析他们?如何定义数据结构,或者类?
#pragma pack(1)
struct B2 {
    unsigned short b; //sizeof(b)==2
};
struct B4 {
    unsigned long b; //sizeof(b)==4
};
struct B6 { //sizeof(B6) == 6
    B2 b2;
    B4 b4;
};
B6 b6[N];
如果用class关键字,我想不出用什么名字来作为类名合适,这样的结构把它叫做‘类’感觉总有些别扭,既然叫‘类’,就应该有方法(成员函数)吧,好像也不需要什么方法;而且,会多出很多字符,比如'public',隐藏的构造和析构函数等。 总之,在这种场合,我更愿意使用struct而不是class
你确定c++ 里面 struct 没有隐藏的构造函数和析构函数???? 你确定struct 里面 不能有方法???
Really_want 2017-09-27
  • 打赏
  • 举报
回复
谈谈我对这两个关键字的感受,仅供参考,原则是“只要喜欢,怎么用都行”: struct叫“结构”,class叫“类”。程序里有些地方用“结构”比用“类”更多合适!比如: 假如,某一天你通过一种有效途径,发现了某种未知文件的数据规律,是按如下方式排列的: 每6个字节为一组,有N组这样的数据;每一组又分为前2个字节加上后4个字节! 0xA1 0xA2 0xB1 0xB2 0xB3 0xB4 0xA1 0xA2 0xB1 0xB2 0xB3 0xB4 0xA1 0xA2 0xB1 0xB2 0xB3 0xB4 ...... 你如何通过程序来解析他们?如何定义数据结构,或者类?
#pragma pack(1)
struct B2 {
    unsigned short b; //sizeof(b)==2
};
struct B4 {
    unsigned long b; //sizeof(b)==4
};
struct B6 { //sizeof(B6) == 6
    B2 b2;
    B4 b4;
};
B6 b6[N];
如果用class关键字,我想不出用什么名字来作为类名合适,这样的结构把它叫做‘类’感觉总有些别扭,既然叫‘类’,就应该有方法(成员函数)吧,好像也不需要什么方法;而且,会多出很多字符,比如'public',隐藏的构造和析构函数等。 总之,在这种场合,我更愿意使用struct而不是class
赵4老师 2017-09-27
  • 打赏
  • 举报
回复
自动档汽车为什么还要能切换为手动换挡模式?
ztenv 版主 2017-09-27
  • 打赏
  • 举报
回复
为了与C兼容,
  • 打赏
  • 举报
回复
个人习惯。。只有简单成员变量没有方法的情况下喜欢用结构体,重载几个运算符就能用了。
大米粥哥哥 2017-09-27
  • 打赏
  • 举报
回复
你可以只用class 当结构体不存在
xskxzr 2017-09-27
  • 打赏
  • 举报
回复
struct默认public,class默认private,其他没区别。
真相重于对错 2017-09-27
  • 打赏
  • 举报
回复
兼容性!!!

64,637

社区成员

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

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