C++虚函数→深入理解

 

面向对象的三大特征:

 

  • 封装
  • 多态
  • 继承

 

  1. 普通虚函数
  2. 虚析构函数
  3. 纯虚函数
  4. 抽象类
  5. 接口类
  6. 隐藏 vs 覆盖
  7. 隐藏与覆盖之间的关系
  8. 早绑定和晚绑定

虚函数表


什么是多态?
相同对象收到不同消息或不同对象收到相同消息时产生的不同的动作。

静态多态 vs 动态多态

※静态多态也叫做早绑定

class Rect       //矩形类
{
public:
    int calcArea(int width);
    int calcArea(int width,int height);
};

如上面的代码,他们函数名相同,参数个数不同,一看就是互为重载的两个函数

int main()
{
    Rect.rect;
    rect.calcArea(10);
    rect.calcArea(10,20);
    return 0;
}

程序在编译阶段根据参数个数确定调用哪个函数。这种情况叫做静态多态(早绑定)

※动态多态也叫做后期绑定