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

标签 c++ polymorphism overriding

假设有以下类:

class A {
    virtual void foo();
};

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

我知道使用“覆盖”可以防止破坏多态性。但是仍然在派生方法中添加 'virtual' 关键字是一种好的风格吗?

最佳答案

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

在您的情况下,virtual 关键字在派生类方法中是隐式的,因为它是隐式向下传播A 类类B

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

优点:明确表明是虚拟的,在深层类层次结构中特别有用。

缺点:外观不干净。

关于c++ - 使用 'virtual' 和 'override' 关键字声明重写方法是好是坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39993136/

相关文章:

c++ - 如果 c++ 中的函数在类中,如何知道它们是否未被使用?

c++ - C++ 中指针的段错误

C++ : inheritance without virtuality

class - 使用类引用进行多态和继承(第2部分)?

c# - 在方法覆盖中更改 params 修饰符

c++ - 为什么派生类中的重写函数会隐藏基类的其他重载?

c++ - 这段代码在做什么?涉及字符数组和指针(C++)

c++ - 从基指针容器访问派生成员

Scala:指定公共(public)方法覆盖 protected 方法

c++ - 需要澄清 C++ 模板格式