无论是公共,私有还是受保护的继承,基类的私有成员都不能被派生类专用的函数访问。
这是我的结论。这是对的吗?
相关说明将不胜感激。
此外,在私有继承中,基类的公共成员在派生类中是私有的,但派生类的新函数仍然可以直接访问它们。正确的吗?
答案 0 :(得分:2)
class Base {
private:
int a;
};
// Private inheritance.
class A : private Base {
public:
A() {
a = 0;
}
};
这给了我:
error: 'int Base::a' is private
当涉及到类访问它的基类私有变量的能力时,继承的类型无关紧要。