成员变量的私有化,不想用户依赖成员变量,同时类的拥有者可以“自由”修改。
先看看代码:
1、成员变量向用户公开(public)
struct Student
{
string name;
int age;
bool sex;
int number;
};
2、成员变量私有化,为用户提供访问的接口。
struct Student
{
getter/setter() {...}
...
private:
string name;
int age;
bool sex;
int number;
};
对比上述两种实现方式,会发现第一种方式不易于修改,类中属性名的改变,相应的用户代码也得跟着改变,否则编译器会抱怨;第二种方式只要对外接口保持不变,类的内部变化不会影响到用户代码的变化。这就说明了面向对象中封装的重要性,而private提供了封装。