64,282
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
using namespace std;
typedef void(*Fun)(void);
class A
{
public:
A():aa('a'),ab(3.0)
{
}
virtual void AA()
{
cout<<"A"<<endl;
}
char aa;
double ab;
};
int main()
{
A b;
cout << sizeof(A) << endl; //大小为24
Fun pFun = NULL;
pFun = (Fun)*((int*)*(int*)(&b));
pFun(); //正确调用虚函数输出“A”
cout << char(*((char*)(&b)+8))<< endl; //正确输出aa的值'a'
cout << double(*((double*)(&b)+2))<< endl; //正确输出ab的值'3'
return 0;
}
cout << sizeof(A) << endl; //大小为16
Fun pFun = NULL;
pFun = (Fun)*((int*)*(int*)(&b));
pFun(); //正确调用虚函数输出“A”
cout << char(*((char*)(&b)+4))<< endl; //正确输出aa的值'a'
cout << double(*((double*)(&b)+1))<< endl; //正确输出ab的值'3'