Effective C++ 条款22:将成员变量声明成private
作者:互联网
- 程序员在调用对象的方法时不需要犹豫要不要打“()”,因为只有方法才是可见的,所以必须都打。
- 用可见的成员方法对数据进行操作,可以控制访问属性。比如如果我只想读,就可以将函数设置成const,这样用户试图写就会出错。
- 封装性,如果日后需要修改某一变量,或者替换。用户压根就不会知道这件事。
第三点非常重要,我们举个例子
class SpeedDataCollection {
public:
void addValue(int speed); // 添加新的数据
double averageSoFar() const; // 计算平均速度
};
这里设计了一个收集汽车速度数据的类,其中有一个计算平均速度的方法。现在有两种方法实现,第一个是用一个成员变量保存。每次更新数据就更新这个成员变量的值。第二个是动态计算,只有当调用averageSoFar方法时才会计算。
两个方法其实都OK,如果内存够大就用第一种,不够就用第二种。
但如果我们第一种用的好好的,现在内存不够了要换第二种。此时如果第一种的成员变量是公有的问题就大了。因为我们需要修改所有用到这个成员变量的地方。但如果设置为私有,外界压根就不知道我们做了修改。这就是封装性的体现。
标签:第一种,const,变量,22,成员,private,C++,方法,averageSoFar 来源: https://www.cnblogs.com/destinyzk/p/14966733.html