C++的多態性是通過虛函數(virtual function)和動態綁定(dynamic binding)實現的。在運行時,程序會根據對象的實際類型來調用相應的函數實現,這就是運行時綁定。
要實現運行時綁定,你需要遵循以下步驟:
virtual
聲明一個成員函數,這樣派生類就可以重寫這個函數。class Base {
public:
virtual void show() {
cout << "Base class show function" << endl;
}
};
class Derived : public Base {
public:
void show() override {
cout << "Derived class show function" << endl;
}
};
int main() {
Base *basePtr = new Derived(); // 使用基類指針指向派生類對象
basePtr->show(); // 運行時根據對象的實際類型調用相應的函數實現
delete basePtr;
return 0;
}
在這個例子中,basePtr
是一個指向Derived
類對象的基類指針。當我們調用basePtr->show()
時,程序會根據basePtr
指向的實際對象類型(即Derived
類)來調用show
函數。因此,輸出結果為Derived class show function
。