(1)当派生类中重写了基类的非虚函数时,这个时候这个函数发生的是静态绑定

下面中的代码中:

定义一个基类B,基类定义了函数fcm,fcm是非虚的函数。

定义一个派生类D,派生类重新定义了fcm。

当用基类的指针指向派生类对象,调用fcm时,调用的是基类的函数。

 #include<iostream>
 using namespace std;
 class B
 {
 public:
     void fcm()
     {
         cout<<"B::fcm"<<endl;
     }
 };

 class D:public B{
 public:
     void fcm()
     {
         cout<<"D::fcm"<<endl;
     }
 };

 int main()
 {
     D d;
     B* ptrB=&d;
     D* ptrD=&d;
     ptrB->fcm();//B::fcm
     ptrD->fcm();//D::fcm

     B b;
     b.fcm();
     d.fcm();
     system("pause");
 }
05-11 20:04