【发布时间】:2016-10-15 13:08:50
【问题描述】:
例如,Plant 类有一个virtual void info() 方法。 flower 类派生自 Plant。Plant 是否有义务拥有自己的方法实现?
【问题讨论】:
-
您是否在询问您的编译器在接受您的代码时是否符合标准?
标签: c++ inheritance virtual-functions
例如,Plant 类有一个virtual void info() 方法。 flower 类派生自 Plant。Plant 是否有义务拥有自己的方法实现?
【问题讨论】:
标签: c++ inheritance virtual-functions
如果函数是pure virtual,即声明为virtual void info() = 0;,则否。否则是。
【讨论】:
没有。
基类需要自己实现由派生类实现的虚拟方法。但是,它们可以有一个实现。
要跳过基类中的实现,只需将其设为纯虚拟,例如
virtual void info() = 0;
在这种情况下,任何派生类 - 或者更具体地说:您希望拥有其实例的任何派生类 - 都需要实现虚拟方法。
【讨论】: