在C++中,多態(tài)可以通過(guò)虛函數(shù)來(lái)實(shí)現(xiàn)。正確的姿勢(shì)是在基類(lèi)中聲明虛函數(shù),并在派生類(lèi)中重新實(shí)現(xiàn)這些虛函數(shù)。這樣在運(yùn)行時(shí),根據(jù)對(duì)象的實(shí)際類(lèi)型來(lái)調(diào)用相應(yīng)的函數(shù)。
#include <iostream>
class Base {
public:
virtual void display() {
std::cout << "Base class display function" << std::endl;
}
};
class Derived : public Base {
public:
void display() override {
std::cout << "Derived class display function" << std::endl;
}
};
int main() {
Base* basePtr = new Derived();
basePtr->display(); // 輸出 "Derived class display function"
delete basePtr;
return 0;
}
在上面的例子中,Base
類(lèi)中有一個(gè)虛函數(shù)display()
,在Derived
類(lèi)中重新實(shí)現(xiàn)了這個(gè)虛函數(shù)。在main
函數(shù)中,通過(guò)Base
類(lèi)的指針指向Derived
類(lèi)的對(duì)象,調(diào)用display()
函數(shù)時(shí)會(huì)根據(jù)對(duì)象的實(shí)際類(lèi)型來(lái)調(diào)用相應(yīng)的函數(shù),實(shí)現(xiàn)了多態(tài)性。