「override」關鍵字如何強制執行虛擬函數重寫
C 11 override 關鍵字不僅僅是重寫的虛擬方法的檢查在基類中,它是一個聲明,表明它前面的函數旨在重寫基類中的虛函數。此明確聲明用於:
確保預期的重寫:
override 關鍵字確保所定義的函數實際上旨在重寫基底類別中的虛擬函數。如果不是,編譯器將標記錯誤,提醒程式設計師注意差異並防止意外行為。
範例:
`
struct Base { virtual int foo () 常數; };
結構衍生:基底類別{
結構派生:基底類別{
};
這裡,哎呀!註釋突出顯示了一個錯誤 - 函數 foo() 在 Derived 中聲明為 virtual,但沒有 const,這與 Base 中聲明的 const 衝突。如果不使用 override,這個錯誤將不會被注意到。
避免靜默重寫錯誤:
如果沒有 override 關鍵字,派生類別中缺少 override 函數將導致無聲錯誤。編譯器會將函數視為新聲明,導致意外後果。 Override 透過明確聲明預期的覆蓋來消除此問題,從而防止這些錯誤。
增強的可讀性和錯誤檢查:
以上是C 中的「override」關鍵字如何確保正確的虛擬函數重寫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!