effective c++ 条款22 declare data members private
给个用户class成员的访问权后,就失去了封装,一个类需要提供访问的成员变量有限,可以提供函数完成访问的功能,而且这样的话第一可以控制访问权限,第二可以避免用户不经意的修改成员变量。
破坏封装的影响也很大。
试想如果一个public的成员变量修改,那么用户所有用到这个成员变量的代码都要修改,
如果一个protected的成员变量被修改,那么所有继承这个类的代码都要修改。
工作量庞大。
所以如果可以就把成员变量声明成private。