条款22:将成员变量声明为private
非常经典的常识性条款,这条款从上学的时候就有要求,在漫长的工作中逐渐变得清楚。
一、为什么声明为private
1、语法一致性
语法一致性内容请详见 条款18 ;
在这里说的语法一致性就是在说,如果成员变量声明为private,那么在public里面将只剩下成员函数,在客户使用该类的时候,不必在选择成员变量(不带括号)和成员函数(带括号)之间不断切换,可以剩下思考这些问题的时间。
当然,这一理由,并不算很有力。
2、对数据成员访问的精确控制
采用本书的例子:
class AccessLevels
{
public:
...
int getReadOnly()const {
return readOnly; }
void setReadWrite(int value)