小编典典

C ++中的结构和类有什么区别?

all

现在我想了解 C++ 中结构和类之间的区别。请讨论技术差异以及在 OO 设计中选择其中一种的原因。

我将从一个明显的区别开始:

  • 如果不指定public:or private:,结构的成员默认是公共的;默认情况下,类的成员是私有的。

我确信在 C++ 规范的晦涩角落中还可以找到其他差异。


阅读 76

收藏
2022-03-14

共1个答案

小编典典

您忘记了类和结构之间棘手的第二个区别。

引用标准(C98 到 C11 中的搂 11.2.2):

在基类没有 访问说明符 的情况下 ,当派生类声明为 struct时假定为 public,而当声明 为 class 时假定为
private 。

为了完整起见,类和结构之间更广为人知的区别在 (11.2) 中定义:

默认情况下,使用关键字 class 定义的类的成员 私有 的。 默认情况下,使用关键字 structunion 定义的类的成员
公共的。

附加区别:关键字class可以用来声明模板参数,而struct关键字不能这样使用。

2022-03-14