在C++中重新定义纯虚方法

Ale*_*rty 2 c++ oop pure-virtual

您是否必须声明方法替换基类中的纯虚函数?如果是这样,为什么?因为基类已将方法声明为纯虚拟,因此必须存在于派生类中,所以在您可以在类定义之外实现它们之前,不需要在派生类中重新声明它们.你不同意吗?

Bar*_*Sas 8

是的,你有.

这样做的原因是让编译器知道虚拟方法是由派生类实现的,因为派生类也可以是抽象的并且具有虚方法.由于编译单元是单独编译的,因此编译器在编译使用派生calss的另一个编译单元时是否由派生类实现虚拟方法,因此不知道它是否是抽象类.