在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()
函数时会根据对象的实际类型来调用相应的函数,实现了多态性。