C ++多级继承,多态

时间:2016-09-10 12:23:54

标签: c++ inheritance polymorphism

假设我有三个类A,B和C.B类继承自A类,继承是私有的,而C类继承自B,继承是public。现在,A类具有C类想要访问的受保护函数。因此,必须在B类中做些什么才能使C类保护功能可用。

以下是代码的链接:http://pastebin.com/9E2sLZzj

2 个答案:

答案 0 :(得分:0)

"使用" keyword使继承类的成员在其子类的范围内可见且可解析。因此,要使私有继承的成员可用于B的子类:

class A {

protected:

    void foo() {}
};

class B : private A {

protected:

    using A::foo;
};

class C : public B {

    void bar()
    {
        foo();
    }
};

答案 1 :(得分:0)

好的,我得到了解决方案 将此代码片段插入B类后,该代码片段就可以工作了。

int get(){
  return A::get();
}

不知道它做了什么