更改继承类的级别

时间:2011-03-31 19:24:41

标签: c++ inheritance

按照我们想要的方式更改继承类的访问级别是否可以?

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?我试图交换访问级别,但我不明白我在这做什么?

2 个答案:

答案 0 :(得分:3)

不,Derived无法突然决定是否会在private中窃取Base成员的能力。

您实际所做的是在Derived中创建完全不同的变量,这些变量恰好具有相同的名称。

答案 1 :(得分:2)

使用Base修饰符从private继承后会发生的情况是只有Derived类可以访问Base个成员。如果您决定创建一个继承自AnotherDerived的{​​{1}},您将无法访问任何Derived个成员。

检查此link以获取有关继承和访问说明符的更多信息。