在多级继承中重写,中间派生类没有重写函数

Des*_*tor 3 c++ c++03

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

class Base {
public : 
virtual void method1();

///
}

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

class Derived2 : Derived1 {
public :
void method1();
}
Run Code Online (Sandbox Code Playgroud)

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

Base* myClass = new Derived2();

myClass->method1();
Run Code Online (Sandbox Code Playgroud)

Som*_*ude 6

一旦父类将函数标记为virtual,“虚拟性”就会保留。无论您拥有多少级继承,或者是否有任何中间类不重写该函数,一旦创建了一个函数,virtual该函数将始终virtual.

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