c++ - 旧 C++ 版本中 struct 和 class 之间的区别
问题描述
它是否总是在 C++ 中,class
并且struct
仅在默认访问说明符上有所不同?还是在某些早期版本中 C++struct
更像 C struct
?
解决方案
几乎总是。
早在标准化之前就一直如此,实际上自 80 年代第一次修订草案以来。
令人沮丧的是,Stroustrup 的“A History of C++”没有讨论这一点,但使用struct
关键字定义的称为“类”的类型早在“C++ 编程语言 - 参考手册”中就可以找到,这是继“C with Classes”研究阶段,因此是第一个标准前 C++ 修订版:
类包含一系列不同类型的对象,一组用于操作这些对象的函数,以及一组对访问这些对象和函数的限制;
结构是没有访问限制的类
这被称为“版本 E”,于 1984 年 11 月问世。
到1989 年的2.0 版,这已经放宽到我们今天的规则:
结构是没有默认访问限制的类
作为时间参考,我们现在称为“C++”的第一个版本是在 1998 年标准化的。
推荐阅读
- python - 在 -h 中显示选项的选择。在带有 argparse 的 python 中使用和可选命令行参数时
- javascript - Text input allows for more than 3 characters
- microsoft-graph-api - 适用于 Android 的 Msgraph-sdk-java 与 Msgraph-sdk-android?
- c# - LINQ 查询在 LINQPad 中工作,但在 C# 中工作
- excel - Subtract and paste answer in subsequent rows until the value changes again
- reactjs - 如何突出显示当前选项卡?
- sql - 查询一个表,就好像它有额外的(虚拟的?)行
- mariadb - 为什么我在安装自制软件后无法访问我的 mariadb?
- java - 为什么 delete(entity) 上的 @RestResource(exported=false) 会影响 deleteById 而反之则不然?
- .net - MVC 提供下载文件而不是打开它