按照我们想要的方式更改继承类的访问级别是否可以?
class Base {
public:
size_t x;
protected:
size_t y;
};
class Derived : private Base {
protected:
size_t x;
public:
size_t y;
};
默认情况下,Base
类是仅继承私有成员还是Base
的所有成员都是private
?我试图交换访问级别,但我不明白我在这做什么?
答案 0 :(得分:3)
不,Derived
无法突然决定是否会在private
中窃取Base
成员的能力。
您实际所做的是在Derived
中创建完全不同的变量,这些变量恰好具有相同的名称。
答案 1 :(得分:2)
使用Base
修饰符从private
继承后会发生的情况是只有Derived
类可以访问Base
个成员。如果您决定创建一个继承自AnotherDerived
的{{1}},您将无法访问任何Derived
个成员。
检查此link以获取有关继承和访问说明符的更多信息。