环境 windows10 64位 clion64
class Foo {
public:
virtual int add(){
return 0;
}
};
class Sun : public Foo{
public:
int add() {
printf("\n%s\n", "class Sun : public Foo add ");
return 99;
}
};
int main(){
Sun *a =new Sun();
long * vt = (long*)(*(long *)a);
printf("vt =%lu", *vt);
__asm__("call *%0"::"r"((vt[0])));//这里也可以用函数指针访问 但是比较麻烦所以直接用call指令调用了 下面为函数指针调用
// int (*addP)()=reinterpret_cast<int (*)(void)>(((long *) (*(long *) a))[0]);
// (*addP)();
}