问题:是不是虚函数的调用就一定是动态绑定?不是的
1:在类的构造函数当中,调用虚函数,也是静态绑定(构造函数中对虚函数的调用不发生动态绑定)
2:如果不是通过指针或者引用变量来调用虚函数,那就是静态绑定

代码1

class Base{public:Base(int data=10):ma(data){   cout<<"Base()"<<endl;        }//虚函数virtual void show(){cout<<"Base Show()"<<endl;}//虚函数virtual void show(int){cout<<"Base Show(int)"<<endl;}~Base(){cout<<"~Base()"<<endl;}protected:int ma;};class Derive : public Base{public: Derive(int data=20):Base(data),mb(data){      cout<<"Derive()"<<endl; }void show(){cout<<"Derive Show()"<<endl;}        ~Derive(){cout<<"~Derive()"<show();//发生动态绑定         pb->show();//发生动态绑定        //动态绑定,必须通过引用调用虚函数         Base &rb1=b;         rb1.show();//发生动态绑定                 Base &rd1=d;         rd1.show();//发生动态绑定         return 0;         }