在C++中,使用override
關鍵字可以顯式地告訴編譯器,當前函數是想要覆蓋基類中的虛函數。
當在派生類中重寫一個虛函數時,可以使用override
關鍵字來確保該函數確實覆蓋了基類中的虛函數。如果基類中沒有對應的虛函數,或者派生類中的函數簽名與基類中的虛函數不匹配,編譯器就會產生一個錯誤。
示例代碼如下:
class Base {
public:
virtual void foo() {
cout << "Base foo" << endl;
}
};
class Derived : public Base {
public:
void foo() override {
cout << "Derived foo" << endl;
}
};
int main() {
Base* ptr = new Derived();
ptr->foo();
delete ptr;
return 0;
}
在上面的示例中,Derived
類中的foo
函數使用了override
關鍵字來重寫Base
類中的foo
函數。當通過基類指針調用foo
函數時,會調用派生類中的函數,從而實現多態性。