使用虚函数未必会产生多态,例如在调用中对虚函数使用成员名限定,可强制C++对该函数的调用使用静态绑定。
实现运行时多态需同时满足下列三个条件:
1)类之间的继承关系满足赋值兼容规则
2)改写了同名虚函数
3)根据赋值兼容规则使用指针或引用
注:赋值兼容规则是指在共有派生情况下,派生类的对象可作为基类对象来使用,有如下三种情况:
1)派生类对象直接赋给几类对象。
2)派生类对象赋给基类引用
3)派生类对象赋给基类指针
使用虚函数未必会产生多态,例如在调用中对虚函数使用成员名限定,可强制C++对该函数的调用使用静态绑定。
实现运行时多态需同时满足下列三个条件:
1)类之间的继承关系满足赋值兼容规则
2)改写了同名虚函数
3)根据赋值兼容规则使用指针或引用
注:赋值兼容规则是指在共有派生情况下,派生类的对象可作为基类对象来使用,有如下三种情况:
1)派生类对象直接赋给几类对象。
2)派生类对象赋给基类引用
3)派生类对象赋给基类指针