#include <iostream>
using namespace std;
class A{ //虚函数示例代码
public:
virtual void fun(){cout<<1<<endl;}
virtual void fun2(){cout<<2<<endl;}
};
class B:public A{
public:
void fun(){cout<<3<<endl;}
void fun2(){cout<<4<<endl;}
};
int _tmain(int argc, _TCHAR* argv[])
{
void (*fun)(A*);
A *p=new B;
long lVptrAddr;
memcpy(&lVptrAddr,p,4);
memcpy(&fun,reinterpret_cast<long*>(lVptrAddr),4);
// memcpy(&fun,reinterpret_cast<long*>(lVptrAddr+4),4);
fun(p);
cout<<"wrxengineer good !"<<endl;
delete p;
system("pause");
return 0;
}