现在我想了解 C++ 中结构和类之间的区别。请讨论技术差异以及在 OO 设计中选择其中一种的原因。
我将从一个明显的区别开始:
public:
private:
我确信在 C++ 规范的晦涩角落中还可以找到其他差异。
您忘记了类和结构之间棘手的第二个区别。
引用标准(C98 到 C11 中的搂 11.2.2):
在基类没有 访问说明符 的情况下 ,当派生类声明为 struct时假定为 public,而当声明 类 为 class 时假定为 private 。
为了完整起见,类和结构之间更广为人知的区别在 (11.2) 中定义:
默认情况下,使用关键字 class 定义的类的成员 是 私有 的。 默认情况下,使用关键字 struct 或 union 定义的类的成员 是 公共的。
附加区别:关键字class可以用来声明模板参数,而struct关键字不能这样使用。
class
struct