虚函数表和Vptr指针
当父类指针指向父类的对象时,没有疑问,编译器对func函数的判断过程就是
1、func是不是虚函数不是就调用成员函数
2、func是虚函数则根据父类的虚函数Vptr指针,查找到func再使用
当父类指针指向子类的对象时,func的判断过程
1、func是不是父类继承过来的成员变量(未虚化)
2、不是的话、func是不是子类的虚函数;
(1)不是,是不是父类的虚函数func;是调用父类Vptr指针查找虚函数func;不是程序报错没有func函数
(2)是,则根据子类的虚函数Vptr指针,查找func再使用
我们向往远方,却忽略了此刻的美丽

浙公网安备 33010602011771号