动态多态过程中发生了什么 useless_coder 2021-07-28 199 阅读1分钟 vfptr-虚函数(表指针) 已声明虚函数的父类会先产生一个虚函数指针;这个指针指向内部的一个vftable。(虚函数表)表内部记录着虚函数的地址。(&父类名称::函数名称) 当子类继承父类的函数之后,也会把这个指针复制进来,因此子类中也存在相应的函数指针。 而采用动态多态时,子类对虚函数进行了重写,导致函数表内地址被覆盖称为子类函数的地址。 所以子类在调用函数时,指针根据传入对象名称来寻址不同函数,实现了动态多态。 已声明的虚函数所占内存空间相应也会变成指针。