关于C ++:C ++ – struct vs. class

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意味着简单的旧数据。这通常指的是不带任何方法的structs,因为这些类型随后用于构造属于一起的多个数据。

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


1)这是C++中唯一的区别。

2)pod:plain旧数据其他类->非pod