C++中Class和Structure的区别?

Neil_wyh 2008-07-19 03:07:32
C++ primer第四版中是这样描述的:The only difference between a class defined with the class keyword or the struct keyword is the default access level: By default, members in a struct are public; those in a class are private.

既然他们之间的差别这么微小,是不是以后只要用Class或者Structure之一就行了呢?
为啥要保留Structure在C++中哦?
...全文
507 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
SeanHwang 2008-07-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 elegant87 的回复:]
默认访问形式不同。
struct 默认的是public形式。
class 默认的是private形式!
[/Quote]
richbirdandy 2008-07-20
  • 打赏
  • 举报
回复
结了吧 除了默认访问权限不同外
一般情况用法 class接收带有C++特性的类型 而struct常接受pod类型
autumnal_mood 2008-07-20
  • 打赏
  • 举报
回复
默认访问级别和继承级别不同,保留Struct是为了兼容C语言。所以最好不用struct了。
summersdw1 2008-07-20
  • 打赏
  • 举报
回复
有两个却别的地方
1.默认成员保护级别不同
class 默认成员为private,struct默认派生为public
2.默认派生保护级别不同
class 默认派生为private,struct默认派生为public
phisherr 2008-07-20
  • 打赏
  • 举报
回复
保留struct是为了兼容C;

但是c++ 的设计者显然希望使用c++ 的人都把成员数据和成员函数尽量设成私有的,这样才能体现封装思想,也就是class关键字的用意所在。
james_li85 2008-07-20
  • 打赏
  • 举报
回复
默认访问级别和继承级别不同,其它的没区别
elantion 2008-07-19
  • 打赏
  • 举报
回复
虽然我初学,但我知道CLASS与STRUCT的区别只是共用和私用的区别,豪迈一点,以后就用CLASS吧
如果想将CLASS变成PUBLIC的,只要在{}内加上一行 Public: 就可以了。
海上的云 2008-07-19
  • 打赏
  • 举报
回复
轮到我就过来顶好了
allendujinxi 2008-07-19
  • 打赏
  • 举报
回复
楼主 都看英文版的啊。。。
我只能中文版的看着
hemiya 2008-07-19
  • 打赏
  • 举报
回复
在C++中应该尽量用class.
因为class是种类的意思,struct是结构。你用struct关键字写类,虽然语法上没区别,但是容易产生误解。
Neil_wyh 2008-07-19
  • 打赏
  • 举报
回复
原来仅仅就是为了兼容C啊...
那干脆全部用Structure好了
呵呵
fangbing007 2008-07-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xkyx_cn 的回复:]
确实struct 与 class的唯一区别就是默认访问控制不同

保留struct是为了兼容C
[/Quote]


同意!!!
yr5018 2008-07-19
  • 打赏
  • 举报
回复
同意一楼的
class和struct在C++中是可以通用的,C中的struct不能包含函数,C++中可以
C++中保留struct就是为了兼容C
tyronedong 2008-07-19
  • 打赏
  • 举报
回复
呵呵,我也看到这里了,书上说了,是为了兼容C语言
wjb_yd 2008-07-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xkyx_cn 的回复:]
确实struct 与 class的唯一区别就是默认访问控制不同

保留struct是为了兼容C
[/Quote]
elegant87 2008-07-19
  • 打赏
  • 举报
回复
默认访问形式不同。
struct 默认的是public形式。
class 默认的是private形式!
xkyx_cn 2008-07-19
  • 打赏
  • 举报
回复
确实struct 与 class的唯一区别就是默认访问控制不同

保留struct是为了兼容C
目录 1. 简介 怎样使用本教程 2. C++基础 Basics of C++ 1. C++程序结构 Structure of a program 2. 变量和数据类型 Variables and Data types 3. 常量 Constants 4. 操作符/运算符 Operators 5. 控制台交互 Communication through console 3. 控制结构和函数 Control structures and Functions 1. 控制结构 Control Structures 2. 函数I Functions I 3. 函数II Functions II 4. 高级数据类型 Advanced Data 1. 数组 Arrays 2. 字符序列 Character Sequences 3. 指针 Pointers 4. 动态内存分配 Dynamic memory 5. 数据结构 Data Structures 6. 自定义数据类型 User defined data types 5. 面向对象编程 Object-oriented Programming 1. 类,构造函数和析构函数,类的指针 Classes. Constructors and Destructors. Pointers to classes. 2. 操作符重载,this,静态成员 Overloading Operators. this. Static members 3. 类之间的关系 Relationships between classes: friend. Inheritance 4. 虚拟成员,抽象,多态 Virtual Members. Abstraction. Polymorphism 6. C++高级 Advanced concepts 1. 模板 Templates 2. 名空间 Namespaces 3. 出错处理 Exception handling 4. 类型转换高级 Advacned Class Type-casting 5. 预处理指令 Preprocessor Directives 7. C++ 标准函数库 C++ Standard Library 1. 文件的输入输出 Input/Output with files C++基础教程简介 怎样使用本教程 读者范围 本教程面向所有希望学习C++语言的读者。如果读者有其他编程语言背景或计算机相关基本知识可以帮助更好的理解教程内容,但这并非必须条件。 对于C语言熟悉的读者可将前三章(1.1 到 3.4)当作复习,因为这部分内容主要介绍C++的C部分。不过某些C++的语法与C还是有些差别,所以建议还是快速的读一下这部分。 第四章讲述面向对象编程。 第五章主要介绍ANSI-C++标准的新增的功能。 本教程结构 教程共分6章,每章分若干小节。你可以直接从主目录进入任意小节,并循每页底部的链接向后浏览。 很多小节含有一页例题介绍该章节主要知识点的使用。建议在进入下一章学习之前最好先阅读这些例题,理解每行代码。 学习和练习一种编程语言的最好办法是自己修改书例题程序,设法在程序增加新的功能。不要不敢修改这些例题程序,这正是学习的方法。 兼容性备注 ANSI-C++标准近几年来被接受为国际标准。尽管C++语言从二十世纪80年代即存在,ANSI-C++在1997年才被发表,2003年又被修订过。因此很多编译器不支持ANSI-C++的部分新功能,特别是那些在此标准发表前即被发布的编译器。 在本教程,那些ANSI-C++新增的而老一代C++编译器大多不支持概念将备用如下标志标出: ANSI C++新增的概念 同样对于C和C++在实现上有明显不同的概念,将备用如下标志标出: C 与 C++不同的地方 编译器 本教程所有例题程序均为console程序(控制台程序)。此类程序以文本形式与用户交换信息,显示结果。 所有C++编译器均支持console程序的编译。要了解更多关于如何编译的说明,请查询你的编译器用户使用手册。 C++编译器和开发环境推荐 很多读者询问编译器和开发环境的问题。除了常用的商用收费的MS Visual Studio, VC++,Borland C++等工具外,还有很多免费的工具也是很好用的。这里推荐两种免费的C++开发软件: 1、Eclipse的CDT开发工具,官方网站在http://www.eclipse.org/cdt/ 2、开源工具Dev-C++和wxDev-C++

64,282

社区成员

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

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