其他分享
首页 > 其他分享> > 虚函数数据偏移量和虚函数指针和虚函数表定义

虚函数数据偏移量和虚函数指针和虚函数表定义

作者:互联网

两个int sizeof//8
int a1;//0 int a2;//4   两个int+一个虚函数fun1 sizeof//12 (vptr//0) int a1;//4 int a2;//8   两个int+两个虚函数fun1fun2 sizeof//12 (vptr//0) int a1;//4 int a2;//8   vptr定义 void * fun[]={&fun1,&fun2}; const void ** vptr=&fun[0]; vptr只是一个指针,指向一个数组首元素,数组中元素是函数的地址,数组叫做虚函数表   两个int+两个虚函数,有两个对象b1b2 b1: vptr int a1; int a2;   b2: vptr int a1; int a2;   两个对象的vptr都指向同一个数组首元素,数组中元素是函数地址,数组叫做虚函数表 虚函数表在编译时期创建好,只存在一份,定义类对象时,编译器将对象的虚函数指针指向虚函数表

标签:a1,函数,int,偏移量,vptr,a2,数组,函数指针
来源: https://www.cnblogs.com/zhouzihong/p/15061440.html