【问题标题】:override in multilevel inheritance with intermediate derived class not having the function overriden用中间派生类覆盖多级继承,没有函数被覆盖
【发布时间】:2019-03-12 09:51:12
【问题描述】:

在多级继承中,我可以在继承层次结构的后面覆盖基类中的虚函数吗?举个例子

class Base {
public : 
virtual void method1();

///
}

class Derived1 : Base {
public : 
void method2();
}

class Derived2 : Derived1 {
public :
void method1();
}

我可以使用多态访问 Derived2::method1() 吗?

Base* myClass = new Derived2();

myClass->method1();

【问题讨论】:

  • 是的。但是你试过吗?你有问题吗?
  • 并在覆盖的虚拟方法上添加override
  • @Matthieu Brucher 我还没有使用 c++11 :)

标签: c++ c++03


【解决方案1】:

一旦父类将函数标记为virtual,“虚拟性”就会保持不变。无论您拥有多少级继承或任何中间类不覆盖该函数,一旦创建函数virtual,该函数将始终virtual。 p>

所以回答你的问题:是的,可以通过多态性使用Derived2::method1。您显示的代码应该可以正常工作。

【讨论】:

    猜你喜欢
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 2019-06-29
    • 2011-01-10
    • 1970-01-01
    相关资源
    最近更新 更多