在 C 11 中,引入「override」關鍵字是為了解決特定問題。如您所知,它的主要作用是確保正在實現的函數確實重寫了基底類別中的虛擬方法。
它還有其他函數嗎?
不,「override」關鍵字的唯一目的是為重寫虛擬方法提供明確檢查。它可以保證所實現的函數旨在重寫基類中的虛擬方法,並防止可能被忽視的錯誤。
考慮以下範例:
struct Base { virtual int foo() const; }; struct Derived : Base { virtual int foo() // whoops! { // ... } };
在此程式碼中,衍生類別中的函數「foo()」缺少「const」修飾符。但是,如果沒有“override”關鍵字,編譯器不會將其標記為錯誤,這可能會導致不正確的行為。透過使用“override”,您可以強制編譯器驗證函數實際上是否覆寫了現有的虛擬方法,捕獲此類錯誤並確保預期的功能。
因此,「override」關鍵字發揮關鍵作用明確指示重寫基底類別中的虛擬方法的意圖,減少錯誤和意外行為的風險。
以上是「override」關鍵字不只是驗證重寫的虛擬方法嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!