C++ C++;-结构与类

C++ C++;-结构与类,c++,C++,可能的重复项: 嗨 在《C++简而言之》一书中,在第6章:类中,下面的访问说明符提到了以下内容: 在类定义中,默认值为 成员和基类的访问权限为 私有的在结构定义中 默认情况是公开的这是唯一的问题 类与类的区别 struct,尽管按照惯例 程序员仅对POD使用struct 类,并将类用于所有其他 类 我的问题是: 类和结构之间是否还有另一个区别,即结构不包含函数而只包含数据 什么是POD课程?还有,这里的所有其他类是什么意思?那么有特殊的课程吗 谢谢。您可以通过尝试在结构中定义函数来证明没

可能的重复项:

在《C++简而言之》一书中,在第6章:类中,下面的访问说明符提到了以下内容:

在类定义中,默认值为 成员和基类的访问权限为 私有的在结构定义中 默认情况是公开的这是唯一的问题 类与类的区别 struct,尽管按照惯例 程序员仅对POD使用struct 类,并将类用于所有其他 类

我的问题是:

  • 类和结构之间是否还有另一个区别,即结构不包含函数而只包含数据
  • 什么是POD课程?还有,这里的所有其他类是什么意思?那么有特殊的课程吗

谢谢。

您可以通过尝试在结构中定义函数来证明没有其他区别。我还记得,我的大学教授在教C++中的结构和课程时,很惊讶地发现(在被学生纠正之后)。不过我相信。这有点有趣。教授不停地说差异是什么,而学生不停地说“实际上你也可以在结构中这样做”。最后,教授问“好的,区别是什么”,学生告诉他唯一的区别是成员的默认可访问性


快速的谷歌搜索表明POD代表“普通的旧数据”。

POD类是普通的旧数据类,只有数据成员,没有其他内容。关于stackoverflow也有一些问题。找一个

也可以在C++中有结构成员的函数,但在C.中不需要在函数中有指针,作为结构中的成员,在C.< /P> < P > 1中,这是C++中的唯一区别。 2) POD:其他类->非POD

好,POD表示普通的旧数据。这通常指的是不带任何方法的结构,因为这些类型随后被用于构造属于一起的多个数据


至于没有方法的结构:我不止一次看到一个结构有方法,我不认为这是不自然的

template<class T> ...
模板。。。
是允许的,但是

template<struct T> ...
模板。。。

不是。

重复:@aali==重复的@SWEngineer?+1对于唯一的方法,使用模板的官方方式是
template
template
有点误导人,这是因为遗留问题。然后在int和class之间添加另一个区别<代码>模板。。。工作但
模板。。。不
@未知,当然可以,出于历史原因,我们只称整数为
I
J
K
L
。对那位老师来说,这是个糟糕的时刻,毫无疑问:)老师试图在C++中不去探索/学习结构和类之间的区别,因为在C中我们不能在结构中添加函数。C甚至没有类:P人认为C++中的结构不能有方法,因为他们把C++看作是C的超集,这导致错误的假设C++结构是与C结构相同。