警告 C26433

功能应该用 override 标记

C++ Core Guidelines

C.128: 虚函数应从 virtual、override 或 final 中明确指定一个

编译器不需要明确说明虚函数会覆盖其基类。 如果不指定 override,当虚拟规范在类层次结构中发生更改的情况下,可能会在维护期间引起微妙的问题。 这还会降低可读性并使接口的多态行为不那么明显。 如果某函数被明确标记为 override,编译器就能检查接口的一致性,并帮助在运行时出现问题之前发现问题。

说明

此规则不适用于析构函数。 析构函数有自己的虚拟特性。

该规则不会标记显式标记为 final 的函数,它本身就是一种特殊的虚拟说明符。

警告显示在函数定义上,而不是声明上。 这可能令人困惑,因为定义没有虚拟说明符,但警告仍然正确。

代码分析名称:OVERRIDE_EXPLICITLY

示例:隐式重写

class Shape {
public:
    virtual void Draw() = 0;
    // ...
};

class Ellipse : public Shape {
public:
    void Draw() { // C26433
        //...
    }
};

另请参阅

C.128: 虚函数应从 virtual、override 或 final 中明确指定一个