c++虚表 内存分配

2014-11-24 02:21:13 · 作者: · 浏览: 1
#include
#include #include
< windows.h>using namespace
std;class A{
char a;public:
A(){a = 'a';cout<<"is
A construct function"< ~A(){cout<<"is A Unconstruct function"< virtual void f(){cout<<"im A v_table"< char b;public: A1(){b = 'b';cout<<"is A1
construct function"< ~A1(){cout<<"is A1 Unconstruct function"< virtual void f(){cout<<"im A1 v_table"< B:public A,public A1{
char c;public:
B(){c = 'c';cout<<"is B construct function"< ~B(){cout<<"is B Unconstruct function"< virtual void f1(){cout<<"im
B v_table"< void (*Fun)(void);int main(){
B b; char *p = (char *)(&b);
cout< Fun pFun = NULL;
pFun = (Fun)*((int*)*(int*)(&b));
pFun(); pFun = (Fun)*((int*)*(int*)(&b)+1);
pFun(); pFun = (Fun)*((int*)*(int*)(p+8));
pFun(); for(int i = 0;i<16;i++)
cout<<"i:"< system("pause");
return 1;}