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