30 July 2022

C++ 核心指南目录

“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 成员