【问题标题】:Do derived classes need their own version of a virtual function declared on base?派生类是否需要在基础上声明的自己版本的虚函数?
【发布时间】:2016-10-15 13:08:50
【问题描述】:

例如,Plant 类有一个virtual void info() 方法。 flower 类派生自 Plant
Plant 是否有义务拥有自己的方法实现?

【问题讨论】:

标签: c++ inheritance virtual-functions


【解决方案1】:

如果函数是pure virtual,即声明为virtual void info() = 0;,则否。否则是。

【讨论】:

    【解决方案2】:

    没有。

    基类需要自己实现由派生类实现的虚拟方法。但是,它们可以有一个实现。

    要跳过基类中的实现,只需将其设为纯虚拟,例如

    virtual void info() = 0;
    

    在这种情况下,任何派生类 - 或者更具体地说:您希望拥有其实例的任何派生类 - 都需要实现虚拟方法。

    【讨论】:

    • 但恐怕问题是反过来的。我说的是在基类而不是派生类上声明虚函数。
    猜你喜欢
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 2016-08-11
    • 1970-01-01
    相关资源
    最近更新 更多