typedef void(*Fun)(void); 请问这个是怎么进行替换的 Fun pFun
#include <iostream>
typedef void(*Fun)(void);
using namespace std;
class Base
{
public:
virtual void f()
{
cout << "Base::f" << endl;
}
virtual void g()
{
cout << "Base::g" << endl;
}
virtual void h()
{
cout << "Base::h" << endl;
}
};
int main()
{
Base b;
Fun pFun = NULL;
cout << "虚函数表地址:" << (int*)(&b) << endl;
cout << "虚函数表 — 第一个函数地址:" << (int*)*(int*)(&b) << endl;
// Invoke the first virtual function
pFun = (Fun)*((int*)*(int*)(&b));
pFun();
}
请问Fun pFun = NULL;这句话是怎么被typedef void(*Fun)(void);这个所替换的