原因是通过地址调用了已知地址的函数,但是没有指定函数类型。
通过地址转化为合适的函数指针来调用他。
解决方法1:
定义函数指针类型typedef void (*func_t)(void);
cout << "调用第1个虚函数: ";
func_t fun = (func_t)* (vptr + 0);
fun();
解决方法2:
定义函数指针类型typedef void (*func_t)(void);
然后进行函数指针类型强制转化,即可调用成功。
((func_t) * (vptr + 0))();