C++的多態(tài)性是通過虛函數(shù)(virtual function)和動態(tài)綁定(dynamic binding)實現(xiàn)的。在運行時,程序會根據(jù)對象的實際類型來調(diào)用相應(yīng)的函數(shù)實現(xiàn),這就是運行時綁定。
要實現(xiàn)運行時綁定,你需要遵循以下步驟:
virtual
聲明一個成員函數(shù),這樣派生類就可以重寫這個函數(shù)。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(); // 運行時根據(jù)對象的實際類型調(diào)用相應(yīng)的函數(shù)實現(xiàn)
delete basePtr;
return 0;
}
在這個例子中,basePtr
是一個指向Derived
類對象的基類指針。當我們調(diào)用basePtr->show()
時,程序會根據(jù)basePtr
指向的實際對象類型(即Derived
類)來調(diào)用show
函數(shù)。因此,輸出結(jié)果為Derived class show function
。