(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"); }