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