2.如何实现动态绑定?
[讲解]:https://blog.csdn.net/primeprime/article/details/80776625
1.维护虚表(指针数组)
2.类拥有虚表指针
经过虚表调用虚函数的过程称为动态绑定
程序在执行p->vfunc1()时,会发现p是个指针,且调用的函数是虚函数
void test(){ B bObject; A *p = &bObject; p->vfun1();//vfun1()是B类重写的A基类虚函数 }
upcast 和 downcast 指什么?
动态多态的必要条件是什么?
需要有继承关系 需要有子类重写父类虚函数 需要有基类指针/引用访问子类虚函数
函数重载与函数重写的区别