警告 C26443

重写析构函数不应使用显式 “override” 或 “virtual” 说明符。

Visual Studio 16.8 中删除了此警告,以反映 C++ Core Guidelines 中 C.128 的更改

C++ Core Guidelines

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

Core Guidelines 的当前共识是从“显式重写”建议中排除析构函数。

说明

  • 规则标志重写显式使用“virtual”或“override”说明符的析构函数。
  • 析构函数仍可以使用“final”说明符,因为其语义特殊。
  • 警告显示在函数定义上,而不是声明上。 这可能令人困惑,因为定义没有虚拟说明符,但警告仍然适用。

代码分析名称:NO_EXPLICIT_DTOR_OVERRIDE

示例:显式“override”

class Transaction {
public:
    virtual ~Transaction();
    // ...
};

class DistributedTransaction : public Transaction {
public:
    ~DistributedTransaction() override { // C26443
        // ...
    }
};

另请参阅

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