给定下面的代码,如果基类中的函数通过使用继承来保护,我们可以访问基类的私有(private)数据。我的问题是,如果基类中的所有方法也都设置为私有(private),是否有任何方法可以访问私有(private)数据?
class Base
{
int i;
protected:
void set(int data){
i = data;
}
int get(){
return i;
}
};
class derive: Base{
public:
void change(int x){
set(x);
cout<<get()<<endl;
}
};
int main()
{
derive b;
b.change(3);
return 0;
}
最佳答案
“如果基类中的函数通过继承得到保护,我们就可以访问基类的私有(private)数据”,不,你并不是真的在访问私有(private)数据。您正在为您执行此操作的基类中调用一个 setter。不,您将无法调用基类的私有(private)方法。
关于c++ - 如果仅存在私有(private)函数,则访问基类中的私有(private)数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28465756/