C++的多態(tài)性允許我們通過(guò)基類(lèi)指針或引用來(lái)調(diào)用派生類(lèi)的成員函數(shù)。處理繼承關(guān)系時(shí),多態(tài)性主要通過(guò)虛函數(shù)(virtual function)實(shí)現(xiàn)。以下是如何使用虛函數(shù)處理繼承關(guān)系的簡(jiǎn)要說(shuō)明:
virtual
聲明一個(gè)成員函數(shù)為虛函數(shù)。這樣,派生類(lèi)中的同名函數(shù)將自動(dòng)成為虛函數(shù)。class Base {
public:
virtual void show() {
cout << "Base class show()" << endl;
}
};
class Derived : public Base {
public:
void show() override {
cout << "Derived class show()" << endl;
}
};
int main() {
Base *b = new Derived();
b->show(); // 輸出 "Derived class show()"
delete b;
return 0;
}
在這個(gè)例子中,我們創(chuàng)建了一個(gè)指向Derived
對(duì)象的Base
指針。當(dāng)我們通過(guò)該指針調(diào)用show()
函數(shù)時(shí),實(shí)際執(zhí)行的是Derived
類(lèi)中的實(shí)現(xiàn),而不是Base
類(lèi)中的實(shí)現(xiàn)。這就是多態(tài)性在C++中處理繼承關(guān)系的方式。