是不是虚函数的调用一定就是动态绑定?
- 肯定不是的!
规则:
-
在对象有之前,是不能发生动态绑定的。
-
在类的构造函数当中,调用虚函数,也是静态绑定(构造函数中调用其它函数(虚),都是不会发生动态绑定的)
-
如果不是通过指针或者引用变量来调用虚函数,那就是静态绑定
都是静态绑定 用对象本身调用虚函数,是静态绑定
测试结果:
不管是基类指针指向基类对象还是派生类对象,全部都是动态绑定!
指向哪个对象,就访问哪个对象的虚函数指针–》虚函数表(动态绑定)
测试结果:
典型的动态绑定!
指针和引用是一样的!也是动态绑定
测试结果:
也是动态绑定
测试结果: