在多级继承中重写,中间派生类未覆盖函数

override in multilevel inheritance with intermediate derived class not having the function overriden

本文关键字:派生 覆盖 函数 中间派 中间 继承 多级 重写      更新时间:2023-10-16

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

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();

一旦父类将函数标记为virtual,该"虚拟性"就会保留。不管你有多少级继承,或者是否有任何中间类不覆盖函数,一旦一个函数被创建virtual该函数将始终virtual

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