您好,
在 C ++在坚果壳书中,在第6章:类中,在访问说明符下,提到了以下内容:
在类定义中,默认值 成员和基类的访问权限是 私人的。在结构定义中, 默认是公开的。 这是唯一的 一个班级与一个班级之间的差异 结构,虽然按照惯例,有些 程序员只在 POD中使用struct 类并使用所有其他类 类
我的问题是:
感谢。
答案 0 :(得分:93)
另一个区别是
template<class T> ...
是允许的,但是
template<struct T> ...
不是。
答案 1 :(得分:39)
您可以通过尝试在结构中定义函数来向自己证明没有其他区别。我记得即使我的大学教授正在教授C ++中的结构和课程,也很惊讶地得知这一点(在被学生纠正之后)。我相信它。这有点儿很有趣。教授不断说出差异是什么,学生一直说“实际上你也可以在结构中做到这一点”。教授最后。问“好的,有什么区别”,学生告诉他,唯一的区别是会员的默认无障碍。
Google快速搜索表明POD代表“普通旧数据”。
答案 2 :(得分:8)
POD类是普通旧数据类,只有数据成员而没有其他内容。关于stackoverflow的问题有几个问题。找一个here。
此外,您可以将函数作为C ++中的结构的成员而不是C中的函数。您需要将函数指针作为C中结构的成员。
答案 3 :(得分:3)
好的,POD表示普通旧数据。这通常是指structs
没有任何方法,因为这些类型随后用于构建属于一起的多个数据。
对于没有方法的结构:我不止一次看到结构有方法,我觉得这不自然。
答案 4 :(得分:2)
1)这是C ++的唯一区别。
2)POD:plain old data其他类 - &gt;不是POD