今天犯了一个比较2的错误,期望用父类的方法,访问子类的私有成员。
原型是这样的
class farther
{
public:
farther(){ it = 1; };
get(){ cout<<it; };
private:
int it;
}
class sun:public farther
{
public:
sun(){ it = 2;}
private:
int it;
}
void main()
{
father f();
sun s();
f.get();
s.get();
}
输出:
11
而不会输出12
因为:
get共有方法调用的是父类的私有变量,不会调用子类的私有变量,因为没有权限。