C++中的多态(Polymorphism)是面向对象编程的三大特性之一,另外两个是封装(Encapsulation)和继承(Inheritance)。多态允许我们使用一个接口来处理不同的数据类型,这些数据类型可能来自基类和派生类。
多态可以分为两种:编译时多态和运行时多态。
- 编译时多态(早期绑定):这种多态主要通过函数重载实现,编译器在编译阶段就可以确定要调用的函数。函数重载基于参数的数量和类型来区分不同的重载版本。
- 运行时多态(后期绑定):这种多态主要通过虚函数实现,也称为动态绑定。在运行时阶段,程序根据对象的实际类型来决定要调用哪个函数版本。这需要使用虚函数和基类的指针或引用。
以下是一个简单的例子,展示了如何使用C++中的虚函数实现运行时多态:
#include <iostream>
#include <string>