C++中既然有了类,为什么还要有结构体?

sinperwolf 2004-09-29 11:07:07
我是搞java的,现在想学习C++,有很多地方还不是很清楚,请大家多多指教
...全文
746 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
eintain 2004-09-29
  • 打赏
  • 举报
回复
这个问题在Lippmam的《深度探索C++对象模型》第一章中有较详细的论述,建议楼主看看!
Johnson545 2004-09-29
  • 打赏
  • 举报
回复
首先,使用结构体所耗费的资源要比类小,但是结构体的变量显然不能有方法,不符合我们对现实世界问题的分析。
sier 2004-09-29
  • 打赏
  • 举报
回复
我觉得主要是两个的类型不同,类是引用类型,结构是值类型。我刚看的。各有各的好处。
sinperwolf 2004-09-29
  • 打赏
  • 举报
回复
其实 C++ 里 struct 和 class 除了默认访问权限以为,几乎是完全一样的东西。


-------------------------------------------------------

struct和class的差别不止这些吧,在我看来struct的作用就是为了保存数据
sanzheng 2004-09-29
  • 打赏
  • 举报
回复
同意楼上的楼上,类是结构的扩充,可以用类完全代替结构
nabie 2004-09-29
  • 打赏
  • 举报
回复
结构体还是很爽的,如果不需要访问权限控制和成员函数的话,比如只为定义一个数据块的话,我还是会选用结构的。

其实 C++ 里 struct 和 class 除了默认访问权限以为,几乎是完全一样的东西。结构里同样可以有构造和析构函数,同样可以定义函数成员和划分访问权限。struct 本身就只是为了兼容 C 而存在的,不光是使用习惯问题,还有可以几乎不用改动的编译原来用 C 写的代码。

也许是我的根深蒂固的 C 的思想的延续,也许是 Windows API 里有太多的结构,我现在还是经常使用结构的。
o1n 2004-09-29
  • 打赏
  • 举报
回复
对,同意楼上的,历史问题。
向下兼容这种原则所迫!
北极猩猩 2004-09-29
  • 打赏
  • 举报
回复
这是历史遗留问题,struct的保留是为了兼容C。
sinperwolf 2004-09-29
  • 打赏
  • 举报
回复
如果不考虑c程序员,从oo角度是不是改少用或不用结构体呢?
pacman2000 2004-09-29
  • 打赏
  • 举报
回复
一点点小区别,其实就是为了让以前的程序可以直接兼容。
vinep 2004-09-29
  • 打赏
  • 举报
回复
呵呵,就是Java是新生的,C++要兼容C, 如果没了结构体会让C的程序员感觉不爽的
grooving 2004-09-29
  • 打赏
  • 举报
回复
类中成员默认为private
结构体中为public
所以结构体在有些方面要比类使用起来简单。
whamjohn 2004-09-29
  • 打赏
  • 举报
回复
我个人认为要看程序的大小和复杂度,小的程序用结构体,速度快,简单,可读性好;当程序有较复杂的结构时,结构体就不太满足了.当然,保留结构体,也有出于与C语言兼容的考虑.
hcj2002 2004-09-29
  • 打赏
  • 举报
回复
保留结构体是为了兼容C程序




umbrella1984 2004-09-29
  • 打赏
  • 举报
回复
不会啊,用了JAVA再来C++一样很轻松啊,主要还是WINDOWS API跟MFC那些东西比较麻烦,现在还在啃这些东西。。。郁闷。
shthycz 2004-09-29
  • 打赏
  • 举报
回复
同意楼上的看法。
个人觉得结构用起来方便,代价比类小。
sinperwolf 2004-09-29
  • 打赏
  • 举报
回复
用久了java,C++还一下子不太适应
sinperwolf 2004-09-29
  • 打赏
  • 举报
回复
但我在网上下载的好多源代码都喜欢用结构体,从面向对象的角度来说这样不太好吧?

然道C++的程序员对结构体情有独衷?如果是我,我会第一考虑用类,而不是结构体
daylove 2004-09-29
  • 打赏
  • 举报
回复
同意楼上的,
seabreeze9802 2004-09-29
  • 打赏
  • 举报
回复
结构体是C里边的,类是C++新加的,类有构造函数和析构函数,还引入了封装、继承和多态的概念,比结构体更符合面向对象的设计概念

保留结构体完全是为了兼容C程序,让原本习惯使用C的人不至于一下子不能用
加载更多回复(3)

64,637

社区成员

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

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