警告 C26433
函式應標示為
override
C++ Core Guidelines
編譯器不需要明確指出虛擬函式會覆寫其基底。 如果類別階層中的虛擬規格變更,未指定 override
可能會導致維護期間發生細微的問題。 它也會降低可讀性,並讓介面的多型行為變得不那麼明顯。 如果函式已明確標示為 override
,編譯器可以檢查介面的一致性,並協助在執行時間自行顯示問題之前找出問題。
備註
此規則不適用於解構函式。 解構函式有自己的虛擬細節。
規則不會將明確標示為 final
的函式加上旗標,而函式本身是特殊種類的虛擬規範。
警告會顯示在函式定義上,而不是宣告。 這可能會造成混淆,因為定義沒有虛擬規範,但警告仍然正確。
程式碼分析名稱: OVERRIDE_EXPLICITLY
範例:隱含覆寫
class Shape {
public:
virtual void Draw() = 0;
// ...
};
class Ellipse : public Shape {
public:
void Draw() { // C26433
//...
}
};