使用 'virtual' 和 'override' 关键字声明重写方法是好是坏?

Is it good or bad style declaring an overridden method with 'virtual' and 'override' keywords?

想象一下 类:

class A {
    virtual void foo();
};

class B : public A {
    virtual void foo() override;
};

我知道使用 'override' 可以防止破坏多态性。但是在派生方法中仍然添加'virtual'关键字是不是很好的风格?

But is it good style to still add the 'virtual' keyword to the derived method?

在您的例子中,virtual 关键字在派生的 class 方法中是隐含的,因为它是从 class A 隐式向下传播 到 class B

如果未明确提及 'virtual' 关键字,编译器可能会通过警告进行投诉。

优点:清楚地表明 virtual,在深层 class 层次结构中尤其有用。

缺点:外观不够干净或清晰。