C++多态

214 阅读1分钟

多态分为两类

  • 静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名
  • 动态多态: 派生类和虚函数实现运行时多态

静态多态和动态多态区别:

  • 静态多态的函数地址早绑定 - 编译阶段确定函数地址
  • 动态多态的函数地址晚绑定 - 运行阶段确定函数地址 当子类继承父类中的函数后,函数早绑定,调用该函数,即时传入对象是子类,也会按父类执行; 使用virtual将父类中的函数置为虚函数,就会晚绑定; 多态满足条件: 1、有继承关系 2、子类重写(函数返回值,参数列表,函数名完全相同)父类中的虚函数

多态使用: 父类指针或引用指向子类对象。(这点非常重要,子类多态调用时必须使用父类指针或者引用)