C++的多态性
多态性:多态就是在同一个 类或继承体系结构的基类与派生类中,用同名函数实现各种 不同的功能。
C++提供多态的目的
可以通过基类指针对所有派生类(包括直接派生和间接派生)的成员(变量+函数)进行“全方位”的访问,尤其是成员函数。如果没有多态,会根据指针的类型访问成员函数,根据指针所指对象类型访问成员变量。
引用也可以实现多态,引用本质上是对指针的封装。
构成多态的条件
- 存在继承关系。
- 继承关系中虚函数必须时覆盖关系(原型相同,即函数名和形参相同)
- 通过 基类指针调用虚函数。
静态联编
又称静态绑定,是指编译程序时就根据调用函数提供的信息,把它所对应的具体函数确定下来,即 在编译时就把调用函数名与具体函数绑定在一起。
动态联编
又称动态绑定,是指在编译阶段还不能确定函数调用所对应的具体函数,只有在程序运行过程中才能够确定函数调用所对应的具体函数,即 在程序运行时才把调用函数名与具体函数绑定在一起。