C++里的类和C语言里的结构的区别是什么?

未知图腾 发布于 2012/06/17 16:59
阅读 2K+
收藏 1

类和结构体的唯一区别就是,类默认是private,结构体默认是public。这句话对不对?

加载中
0
翁鑫晶
类默认是private,结构体默认是public 是对的
0
leo108
leo108
“唯一”就错了
0
醪糟儿蛋
醪糟儿蛋

那话明显不对

C的结构体里不能写函数

也没有private public 这些东西,也没有 析构和构造

但这些C++的里有

如果你说C++里 类和结构体的区别,那你哪句话就是对的

一只扬
一只扬
回复 @醪糟儿蛋 : 你非要这么想我也没办法。
醪糟儿蛋
醪糟儿蛋
回复 @一只扬 : 那叫指针好吧?不叫函数!能写函数的实现么?
一只扬
一只扬
回复 @醪糟儿蛋 : 函数指针
醪糟儿蛋
醪糟儿蛋
回复 @一只扬 : 你是如何做到的?求解释
一只扬
一只扬
c的结构体明明就可以写函数
下一页
0
情天大圣
情天大圣
C++的class跟C的struct区别太多太多,就不一一列举了。

但C++的class和C++的struct之间区别很小,只有两点:
(1)默认的成员访问权限,前者是private,后者是public;
(2)默认的继承权限,来自class的继承默认为private继承,来自struct的继承默认是public继承。
Lunar_Lin
Lunar_Lin
谢谢! 很好,回字又多了一种写法. 呵呵. 以前只知道1, 因为是c++ primer上说的唯一区别. 不过你说的(2) "来自" 2字不恰当. 应该是struct/class 继承别人时的区别.
0
中山野鬼
中山野鬼

引用来自“星星点天灯”的答案

C++的class跟C的struct区别太多太多,就不一一列举了。

但C++的class和C++的struct之间区别很小,只有两点:
(1)默认的成员访问权限,前者是private,后者是public;
(2)默认的继承权限,来自class的继承默认为private继承,来自struct的继承默认是public继承。
正解啊。。类就是类,结构体就是结构体(C语言)。完全两会事。只能说形似。。
0
guoliang
guoliang

区别太多了。

类是针对面向对象来设计的,他拥有面向对象语言的所有特征,包括继承、多态、封装。每个特征都涉及很多内容

而结构仅仅是一块关联在一起的数据空间而已。

0
小熊猫大暴走
小熊猫大暴走

c++的类和c++的结构体 而不是c++的类和c的结构体。c是c c++是c++,不要把c看成c++,也不要把c++说成c

0
吃土的汉子
吃土的汉子

你说的是C++中的类和C语言中的struct,那么这话就有问题了,因为:

C语言中的结构体压根儿就没有访问权限这个概念,也没有public、protect、private,更不用说多态用的虚表了

但是如果说C++中的类和结构体有什么区别,确实就只有这么一个区别,在C++中struct只是一个兼容C语言的产物,与class具备相同的能力,并在大部分时候可以向后兼容C

0
cloveryume
cloveryume
结构体没有虚函数表
0
hjason2042
hjason2042

LZ是看的外文教材翻译过来的中文版吧....

返回顶部
顶部