呵呵~~其实很简单,每样事物总有你看到的和看不到的东西吧~~~
同样,你可以把一个对象里的所有成员都公开~~,而这就意味着对象里的所有成员都能被外界直接访问和修改,难道你不觉得这样很不安全吗?看下面一个例子,一个"班"类:
class Class
{
public:
string StudentName[50]; //班里各学生的名字集合,班里最多只能有50位同学
int StudentCount; //班里学生的总数
void Add_Student(string name) //添加学生的方法
{
StudentCount++;
StudentName[StudentCount-1]=name;
}
};
注意:忽略构造函数
在上面的例子里,Class类的所有成员都是公开的,这就意味着可以通过对StudentCount直接修改来改变班里学生的总数,可是这里有一个成员:StudentName[],它是用来储存班里各学生的名字的.要是只把StudentCount加1,可是没有在StudentName里也左相应修改的话,两个数据成员就出现了不协调了~~例如:
void main()
{
Class myClass;
myClass.Add("Tom");
myClass.StudentCount++;
}
现在你能够说出班里真的多了一位同学吗?虽然班的学生总数多了一个,可是同学名称集里只有
Tom一个人,多出的那一个...........鬼?呵呵,把特定的数据成员隐藏(私有化)掉能够避免出现这类情况:
class Class
{
public:
void Add_Student(string name) //添加学生的方法
{
StudentCount++;
StudentName[StudentCount-1]=name;
}
private:
string StudentName[50]; //班里各学生的名字集合,班里最多只能有50位同学
int StudentCount; //班里学生的总数
};
现在,外界就只能使用Add_Student()方法修改班里的学生总数了~~~~