C ++纯虚方法不需要关键字覆盖

时间:2018-01-09 21:11:08

标签: c++ inheritance abstract-class pure-virtual

我编写了一个带有虚方法的基类和两个公开继承该基类的派生类。我使用“覆盖”来实现抽象基类的纯虚拟版本。在Xcode和许多其他IDE中,通常会有一个关键命令,用于在单击方法声明时按住,该声明将直接导航到其定义。我觉得我的虚拟纯声明被“链接”到我的派生类重写方法,因为我能够通过使用Command +点击虚拟纯声明从基类导航到派生类,但是,我是能够自由地删除“override”关键字并编译没有错误,当我一直认为在实现纯虚方法的定义时需要“覆盖”。解释这一点的任何帮助都会很棒:

这是抽象基类:

class MillisecondsHertzValueBase
{
private:

// Removed code to reduce length

public:
    MillisecondsHertzValueBase();
    virtual ~MillisecondsHertzValueBase();

    virtual void calculateValues (const double &input) = 0;

    // Removed code to reduce length
};

这是派生类头文件之一,我可以在其中自由删除“override”关键字:

class MillisecondValues : public MillisecondsHertzValueBase
{
public:
    ~MillisecondValues();
    void calculateValues (const double &input) override;
};

以下是实施:

MillisecondValues::~MillisecondValues() {}

void MillisecondValues::calculateValues (const double &input)
{
    // Removed code to reduce length
}

0 个答案:

没有答案