像C++语言一样,在'oop'中有'public','private'和'protected'。我尝试了两种简单的程序。为什么在面向对象的程序中使用'private'?
以下是C++中的第一种情况。
class A {
public:
string name;
}
int main(void) {
A a;
a.name;
}
而且,第二种情况下...
class A {
protected:
string name;
public:
string getName(void) {
return name;
}
}
int main(void) {
A a;
//a.name; //can't access
cout << a.getName();
}
哪一个是在两种情况下更好?
由于信息必须被隐藏的,第二个是可能更好,我想。但是第二个,它也可以通过使用函数getName()
来访问'name'变量。如果是这样,虽然第一个比第二个简单,但我为什么要用第二个呢?换句话说,为什么使用protected
?
“由于信息必须被隐藏,第二个是有可能更好” - 如果隐藏的信息是目标,第二个是*只有*一个即使远程资格,所以它默认赢得“更好”。 – WhozCraig