#include <string>
#include <iostream>
using std::string;
using std::cout;
using std::endl;
class A
{
public:
A(){};
~A(){};
virtual void show1() { cout << "Ashow1" << endl; }
virtual void show2() { cout << "Ashow2" << endl; }
virtual void show3() { cout << "Ashow3" << endl; }
};
class B :public A
{
public:
B(){};
~B(){};
virtual void show1() { cout << "Bshow1" << endl; }
virtual void show2() { cout << "Bshow2" << endl; }
};
typedef void(*pfun)();
int _tmain(int argc, _TCHAR* argv[])
{
int len = sizeof(B);
B* pObj = new B;
pfun pf = NULL;
for (int i = 0; i < 5;i++)
{
pf = (pfun)*((long*)*(long*)pObj + i);
if (pf != 0)
{
pf();
}
}
return 0;
}