旧 C++ 版本中 struct 和 class 之间的区别

Doe*_*ohn 1 c++ oop class c++98

是否总是在 C++ 中class并且struct仅在默认访问说明符上有所不同?或者在某些早期版本中,C++struct更像 C struct

Ast*_*ngs 6

几乎总是。

早在标准化之前很久就是这样,实际上是从 80 年代第一次修订草案开始

令人沮丧的是,Stroustrup 的“A History of C++”没有讨论这个,但是使用struct关键字定义的称为“类”的类型早在“C++ 编程语言 - 参考手册”中就可以找到,这是遵循“C with Classes”研究阶段,因此是第一个预标准 C++ 修订版:

包含一系列各种类型的对象,一组用于操作这些对象的函数,以及一组对访问这些对象和函数的限制;

没有访问限制的类结构

这被称为“版本 E”,于 1984 年 11 月发布

到1989 年的2.0 版,这已经放宽到我们今天的规则:

没有默认访问限制的类结构

作为时间参考,我们现在称为“C++”的第一个版本于 1998 年标准化。