警告 C26443
覆寫解構函式不應使用明確的 'override' 或 'virtual' 規範。
Visual Studio 16.8 已移除此警告,以反映 C++ 核心指導方針 中 C.128 的變更。
C++ Core Guidelines
C.128:虛擬函式應該只指定其中一個虛擬、覆寫或最終 函式。
核心指導方針的目前共識是排除「明確覆寫」建議的解構函式。
備註
- 規則旗標會覆寫明確使用 'virtual' 或 'override' 規範的解構函式。
- 解構函式仍可使用 'final' 規範,因為它的特殊語意。
- 警告會顯示在函式定義上,而不是宣告。 這可能會造成混淆,因為定義沒有虛擬規範,但警告仍然適用。
程式碼分析名稱: NO_EXPLICIT_DTOR_OVERRIDE
範例:明確 'override'
class Transaction {
public:
virtual ~Transaction();
// ...
};
class DistributedTransaction : public Transaction {
public:
~DistributedTransaction() override { // C26443
// ...
}
};