在C++中,override
是一個函數修飾符,用于顯式地聲明一個成員函數是對基類中的虛函數進行重寫。
在C++中,當一個函數在基類中被聲明為虛函數時,派生類可以選擇是否重寫這個函數。使用override
關鍵字可以增加代碼的可讀性,并確保編譯器能夠檢測到重寫錯誤。
使用override
的語法如下:
class Base {
public:
virtual void foo();
};
class Derived : public Base {
public:
void foo() override; // 使用override顯式地重寫Base中的foo函數
};
在上面的例子中,Derived
類顯式地重寫了Base
類中的foo
函數,并使用override
關鍵字進行了標記。如果Derived
類中沒有重寫foo
函數,或者重寫的函數與基類中的虛函數簽名不匹配,編譯器將會發出錯誤。
使用override
關鍵字的好處是:
override
的函數會自動更新,避免了忘記更新函數簽名的錯誤。需要注意的是,override
關鍵字只能用于派生類中的虛函數重寫,不能用于非虛函數或靜態函數。此外,C++11引入的final
關鍵字可以用于阻止派生類對虛函數的重寫。