众所周知,一个含有虚函数表的子类对象的首地址为指向虚函数表的虚函数指针的地址
比如是一个vptr指针指向虚函数表,有一个含有虚函数表的子类对象
(int *)&b,取4个字节,其实该地址是&vptr指针,而虚函数表的地址(vptr指针所指向的地址)
(int *) *((int *)(&b))才是虚函数表真正的地址(也是保存第一个函数的地址的地址)
(函数类型)*((int *) *(int *)(&b));这就是函数地址了
众所周知,一个含有虚函数表的子类对象的首地址为指向虚函数表的虚函数指针的地址
比如是一个vptr指针指向虚函数表,有一个含有虚函数表的子类对象
(int *)&b,取4个字节,其实该地址是&vptr指针,而虚函数表的地址(vptr指针所指向的地址)
(int *) *((int *)(&b))才是虚函数表真正的地址(也是保存第一个函数的地址的地址)
(函数类型)*((int *) *(int *)(&b));这就是函数地址了