首页 > 解决方案 > 旧 C++ 版本中 struct 和 class 之间的区别

问题描述

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

标签: c++classoopc++98

解决方案


几乎总是。

早在标准化之前就一直如此,实际上自 80 年代第一次修订草案以来

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

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

结构是没有访问限制的类

这被称为“版本 E”,于 1984 年 11 月问世

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

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

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


推荐阅读