C++ - struct vs. class
Possible Duplicates:
C/C++ Struct vs Class
What are POD types in C++?
你好,
在C++中,在第6章:类、UNDER访问说明符中,提到了以下内容:
In a class definition, the default
access for members and base classes is
private. In a struct definition, the
default is public. That is the only
difference between a class and a
struct, although by convention, some
programmers use struct only for POD
classes and use class for all other
classes.
我的问题是:
- 类和结构之间是否还有另一个区别,那就是结构不包含函数,只保留数据?
- 什么是pod类?还有,这里所有其他的课程是什么意思?那么有特别班吗?
谢谢。
另一个区别是
1 | template<class T> ... |
是允许的,但是
1 | template<struct T> ... |
不是。
您可以通过尝试在结构中定义函数来向自己证明没有其他区别。我还记得,我的大学教授在教C++中的结构和课程时,很惊讶地发现了这一点(在被学生纠正之后)。不过,我相信。有点好笑。教授不停地说这些区别是什么,学生不停地说,"实际上,你也可以在一个结构中做到这一点"。最后,教授问"好的,有什么区别",学生告诉他唯一的区别是成员的默认可访问性。
谷歌的快速搜索表明pod代表"简单的旧数据"。
pod类是普通的旧数据类,只有数据成员,没有其他的。关于stackoverflow还有几个问题。在这里找到一个。
此外,您可以在C++中拥有结构成员的功能,而不是C.中的函数。您需要在C.的结构中使用指针作为结构中的成员。
好的,pod意味着简单的旧数据。这通常指的是不带任何方法的
至于没有方法的结构:我不止一次看到一个结构有方法,我不认为这是不自然的。
1)这是C++中唯一的区别。
2)pod:plain旧数据其他类->非pod