C ++ – 结构与类
可能重复:
C / C ++结构与类
C ++中的PODtypes是什么?
嗨,
在C ++ In a Nutshell的书中 ,在第6章:类中 ,在Access的说明符下面提到了以下内容:
在类定义中,成员和基类的默认访问是私有的。 在一个结构体定义中,默认是公共的。 这是类和结构之间的唯一区别 ,尽pipe按照惯例,有些程序员只使用struct来为POD类使用类,而对所有其他类使用类 。
我在这里的问题是:
- 类和结构之间没有另外的区别,因为结构不具有function,只是保存数据?
- 什么是POD类? 而且,这里所有其他class级的含义是什么? 那有特殊的课程吗?
谢谢。
另一个区别是
template<class T> ...
是允许的,但是
template<struct T> ...
不是。
你可以向自己certificate,通过在结构中定义一个函数没有其他区别。 我记得甚至我的大学教授正在教C ++中的结构和类,也很惊讶地发现(在学生纠正之后)。 我相信,但是。 这很有趣。 教授一直在说分歧是什么,学生一直说“其实你也可以在一个结构中做到这一点”。 最后是教授。 问“好的,有什么区别”,学生告诉他,唯一的区别是会员的默认访问。
谷歌search表明,POD代表“普通旧数据”。
POD类是只有数据成员而没有别的普通旧数据类。 关于相同的stackoverflow有几个问题。 在这里find一个。
另外,你可以把函数作为C ++中的结构体的成员,但是不能用C语言。你需要在C中的结构体中有指向函数的指针。
好的,POD是指旧的数据 。 这通常是指没有任何方法的structs
,因为这些types然后被用来构造属于一起的多个数据。
至于没有方法的结构:我不止一次看到一个struct有方法,我不觉得这是不自然的。
1)这是C ++唯一的区别。
2)POD: 普通的旧数据其他类 – >不POD