在C++語言中,可以使用關鍵字override
來表明一個成員函數是一個覆蓋(override)了基類中同名函數的派生類函數。通過使用override
關鍵字,可以提供編譯器對函數重寫的檢查,確保函數的簽名與基類中的函數一致。
要調用派生類中覆蓋了基類函數的函數,可以使用基類的指針或引用來調用,這樣可以實現多態性。以下是一個示例:
#include <iostream>
class Base {
public:
virtual void print() {
std::cout << "Base class" << std::endl;
}
};
class Derived : public Base {
public:
void print() override {
std::cout << "Derived class" << std::endl;
}
};
int main() {
Base* basePtr = new Derived();
basePtr->print(); // 調用Derived類中的print函數
delete basePtr;
return 0;
}
在上述示例中,Derived
類覆蓋了Base
類中的print
函數。在main
函數中,基類指針basePtr
指向一個派生類的實例。通過基類指針調用print
函數時,實際上會調用派生類中的print
函數。輸出結果為"Derived class"。
需要注意的是,為了實現多態性,基類中的函數必須聲明為虛函數(使用virtual
關鍵字)。這樣在運行時,可以根據實際對象的類型來調用相應的函數。