多态原理探究(证明VPTR指针的存在以及初始化)
怎么证明vptr指针存在呢??用代码来说明。
#include "iostream" using namespace std; class AA { public: virtual void print() { printf("dddd\n"); } protected: private: int b; }; void main() { printf("AA%d \n", sizeof(AA)); AA a; // system("pause"); }
虚函数表指针(VPTR)被编译器初始化的过程

vptr:一个具有虚函数类的对象所具有的隐藏的成员,指向该类的虚函数表.
父类对象的vptr指向是一直指向父类的.但子类的vptr指针最终是指向子类的,
当子类创建的时候,先调用父类构造函数,这个时候vptr指针是指向父类的,

浙公网安备 33010602011771号