本次需要用到虚函数的call,虚函数解释:
struct foo{
int x;
int y;
virtual void Bar(int C);
};
virtual关键字会让编译器插入一个Vtable 指针,在全局区编译器会把Vtable定义成全局的,也就是一个Vtable for foo(),它包含一系列的函数指针
当调用这个函数foo.Bar(4)时,编译器就会先看下foo的Vtable,再到里面找Bar();
只要是使用了Virtual关键字的结构体中的函数,就会有张全局的VTable。虚拟表所做的是,它会查看结构来找到表的