在C++中,多態可以通過虛函數來實現。正確的姿勢是在基類中聲明虛函數,并在派生類中重新實現這些虛函數。這樣在運行時,根據對象的實際類型來調用相應的函數。
#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類中有一個虛函數display(),在Derived類中重新實現了這個虛函數。在main函數中,通過Base類的指針指向Derived類的對象,調用display()函數時會根據對象的實際類型來調用相應的函數,實現了多態性。