C++ – 关于 struct 和 class 关键字的选择

中所周知,C++ 中的 struct 来源于 C 语言历史遗留,除了默认作用域为 public 外,与 class 并无区别,理论上可以混用。我们这里通过标准库,以及 Unreal 等工程实践,对 structclass 关键字的选择进行一个总结。

  • 如果类型包含非 public 成员变量,应当选择 class
  • 如果类型包含 virtual 函数,应当选择 class
  • 如果类型可以 聚合初始化 ,应当考虑 struct
  • 如果类型的构造析构以及赋值函数为 = default; 实现,应当考虑 struct

发表回复