CppCoreGuidelines C.8 如果有不公开的成员,请使用 class,不要用 struct
30 July 2022
“Use class rather than struct if any member is non-public”
理由
可读性更好。清晰的标明某些东西是隐藏的抽象的。
错误的例子
struct Date { int d, m; Date(int i, Month m); // ... lots of functions ... private: int y; // year };
此代码没有任何语法错误。但是从设计角度来看,错误多多。私有成员变量和其他变量在代码中的位置分离的很开。不同区域的数据有不同的访问级别。所有这些导致了可读性变差、维护变得复杂。
注意
首先把接口放在类定义靠前的位置
标记警告:声明为 struct 的类如果有 private 或 protected 成员