在C++中,多態是面向對象編程的一個重要特性,它允許我們通過基類指針或引用來調用派生類的成員函數。實現多態的關鍵是使用虛函數(virtual functions)和動態綁定(dynamic binding)。
以下是實現多態的步驟:
class Base {
public:
virtual void display() {
cout << "Base class display function"<< endl;
}
};
class Derived : public Base {
public:
void display() override {
cout << "Derived class display function"<< endl;
}
};
int main() {
Base* basePtr = new Derived(); // 使用基類指針指向派生類對象
basePtr->display(); // 調用派生類的display函數
Base& baseRef = *basePtr; // 使用基類引用指向派生類對象
baseRef.display(); // 調用派生類的display函數
delete basePtr;
return 0;
}
在這個例子中,我們創建了一個基類Base
和一個派生類Derived
。基類中聲明了一個虛函數display()
,派生類重寫了這個虛函數。在main()
函數中,我們使用基類指針和引用分別指向派生類對象,并調用display()
函數。由于display()
函數是虛函數,所以會根據對象的實際類型(派生類)來調用相應的函數,實現了多態。