可能的重复:C / C Struct vs Class C中的POD类型是什么?
嗨,
在 C++ In a Nutshell book , chapter 6: classes , Access specifiers 下面,提到了以下内容:
在类定义中,成员和基类的默认访问权限是私有的 . 在结构定义中,默认值为public . 这是类和结构之间的唯一区别,尽管按照惯例,一些程序员仅将结构用于POD类,并将类用于所有其他类 .
我的问题是:
-
Isn 't there another difference between classes and structs in that structs don' t保持功能并保存数据?
-
什么是POD课程?而且,这里所有其他课程的含义是什么?那么特殊课程吗?
谢谢 .
5 回答
另一个不同之处在于
是允许的,但是
不是 .
您可以通过尝试在结构中定义函数来向自己证明没有其他区别 . 我记得即使我的大学教授正在教授C语言中的结构和课程,也很惊讶地得知这一点(在被学生纠正之后) . 我相信它 . 这有点儿很有趣 . 教授不断说出差异是什么,学生一直说“实际上你也可以在结构中做到这一点” . 教授最后 . 问“好的,有什么区别”,学生告诉他,唯一的区别是成员的默认可访问性 .
谷歌的快速搜索表明,POD代表“普通旧数据” .
POD类是Plain-Old数据类,只有数据成员而没有其他内容 . 关于stackoverflow的问题有几个问题 . 找一个here .
此外,您可以将函数作为C语言中的结构成员而不是C语言 . 您需要将函数指针作为C语言中结构的成员 .
好的,POD意味着普通的旧数据 . 这通常是指没有任何方法的
structs
,因为这些类型随后用于构建属于一起的多个数据 .至于没有方法的结构:我不止一次看过结构有方法,我觉得这不自然 .
1)这是C的唯一区别 .
2)POD:plain old data其他类 - >不是POD