在C++中,override
關(guān)鍵字用于顯式地指示一個成員函數(shù)是覆蓋(override)基類中的虛函數(shù)。它的使用方法如下:
virtual
。class Base {
public:
virtual void foo();
};
override
關(guān)鍵字。class Derived : public Base {
public:
void foo() override;
};
請注意,使用override
關(guān)鍵字的函數(shù)聲明必須滿足以下條件:
函數(shù)名、參數(shù)列表和const限定符(如果有)必須與基類中的虛函數(shù)完全匹配。
如果在基類中的虛函數(shù)聲明中使用了const
限定符,那么在派生類中的重寫函數(shù)聲明也必須使用const
限定符。
如果在基類中的虛函數(shù)聲明中使用了final
關(guān)鍵字標(biāo)記函數(shù)為最終函數(shù),那么在派生類中不可以使用override
關(guān)鍵字來覆蓋該函數(shù)。
使用override
關(guān)鍵字可以提高代碼的可讀性,并幫助編譯器在派生類中檢查是否正確地覆蓋了基類中的虛函數(shù)。如果在派生類中使用了override
關(guān)鍵字,但是該函數(shù)并沒有覆蓋基類中的虛函數(shù),編譯器會發(fā)出錯誤提示。