class Base { public: virtualvoid f(){cout<<"Base::f()"<<endl;} virtualvoid g(){cout<<"Base::g()"<<endl;} virtualvoid h(){cout<<"Base::h()"<<endl;} };
class Derive:public Base { virtualvoid f1(){cout<<"Derive::f1()"<<endl;} virtualvoid g1(){cout<<"Derive::g1()"<<endl;} virtualvoid h1(){cout<<"Derive::h1()"<<endl;} };
int main() { typedefvoid(*Fun)();
Base *b =new Derive; cout<<*(int*)b <<endl; Fun funf =(Fun)(*(int*)*(int*)b); Fun fung =(Fun)(*((int*)*(int*)b + 1)); Fun funh =(Fun)(*((int*)*(int*)b + 2)); Fun funf1 =(Fun)(*((int*)*(int*)b + 3)); Fun fung1 =(Fun)(*((int*)*(int*)b + 4)); Fun funh1 =(Fun)(*((int*)*(int*)b + 5));
class Base { public: virtualvoid f(){cout<<"Base::f()"<<endl;} virtualvoid g(){cout<<"Base::g()"<<endl;} virtualvoid h(){cout<<"Base::h()"<<endl;} };
class Derive:public Base { virtualvoid f(){cout<<"Derive::f()"<<endl;} virtualvoid g1(){cout<<"Derive::g1()"<<endl;} virtualvoid h1(){cout<<"Derive::h1()"<<endl;} };
int main() { typedefvoid(*Fun)();
Base *b =new Derive; cout<<*(int*)b <<endl; Fun funf =(Fun)(*(int*)*(int*)b); Fun fung =(Fun)(*((int*)*(int*)b + 1)); Fun funh =(Fun)(*((int*)*(int*)b + 2)); Fun fung1 =(Fun)(*((int*)*(int*)b + 3)); Fun funh1 =(Fun)(*((int*)*(int*)b + 4));