《Effective C艹》读书笔记(15)

条款22:将成员变量声明为private

    作为学生党,经常在代码里把变量声明为public,在外部直接进行访问了事。这个条款告诉我们,这样做是非常不科学的。

    1,private能够提供非常完善的权限控制,你可以直接控制一个变量是只读,还是可读可写,甚至是只写。而不是把使用这个类的各种权限全部公开。

    2,private对数据进行了封装,减少了数据被外界访问的机会,方便了代码的维护。

class base{
public:
    int data;
    char* name;
};

     试想有这样的一个类,其中的数据全部为public,那么外界可以直接对name和data这个数据进行各种读写操作。如果某一天需要对类进行修改,把name变为string类型,那么之前的那些代码将会几乎全部作废。

     如果在最初把name设为private,只提供公有的读写函数,就可以避免上面现象的产生,因为name出现变化,只需要修改相应的读写函数就可以了。

    

    protected并不比public更具备封装性

   如果不存在继承关系,那么protected和private相同。但如果存在继承关系时,protected标识的成员变量,在它的子类中仍可以直接访问,所以封装性就会受到冲击。这时候对父类进行修改,那么子类仍然要进行修改。这会造成麻烦

猜你喜欢

转载自bbezxcy.iteye.com/blog/2244047
今日推荐