C++类的继承机制的一个特点是多态性。所谓多态性是指子类和父类中具有相同函数名但不同操作的函数。那么问题来了,同一个函数名在调用时该选择那个函数体呢?其中一个方法是静态绑定,即编译时选择函数体,也叫缺省的函数调用方式。

   动态绑定即在运行时选择函数体,是桥接子类和父类之间同名函数的接口。侧重于父类对象对子类同名函数调用的实现。动态绑定通过虚函数实现,使用规则有4点:

    1. 要有一个继承层次
    2. 在基类中要定义虚函数
    3. 在派生类中要对基类中定义的虚函数进行重定义
    4. 要通过基类指针(或基类引用)来调用虚函数
 

case:

#include <iostream>
using namespace std ;

class a
{
 public:
    virtual void h(double) {
  cout << "aaaaaa!" << endl ;
 }
};

class b: public a
{
 public:
  void h(double) {
  cout << "bbbbbb!" << endl ;
 }
} ;

int main()
{
 class a *p , pp;
 class b obj ;
 p = &obj ;
 p->h(77.08);
 pp.h(77.08);
 return 0 ;
}