使用 '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 层次结构中尤其有用。
缺点:外观不够干净或清晰。
想象一下 类:
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 层次结构中尤其有用。
缺点:外观不够干净或清晰。