您的位置:首页 > 其它

虚拟继承体系下对象的大小

2015-04-17 14:16 281 查看
#include "stdafx.h"

#include <Windows.h>

class X

{
//int count;

};

class Y:public virtual X

{

};

class Z:public virtual X

{

};

class A:public Y,public Z

{

};

int _tmain(int argc, _TCHAR* argv[])

{
char buf[100]={0};
sprintf_s(buf,100,"sizeof(X)=%u,sizeof(Y)=%u,sizeof(Z)=%u,sizeof(A)=%u",sizeof(X),sizeof(Y),sizeof(Z),sizeof(A));
printf_s(buf);
Sleep(100000);
return 0;
}

输出: sizeof(X)=1,sizeof(Y)=4,sizeof(Z)=4,sizeof(A)=8

上面的对象模型是什么?

————————————————————————————————————————————————————————————————————————————

#include "stdafx.h"

#include <Windows.h>

class X

{
int count;

};

class Y:public virtual X

{

};

class Z:public virtual X

{

};

class A:public Y,public Z

{

};

int _tmain(int argc, _TCHAR* argv[])

{
char buf[100]={0};
sprintf_s(buf,100,"sizeof(X)=%u,sizeof(Y)=%u,sizeof(Z)=%u,sizeof(A)=%u",sizeof(X),sizeof(Y),sizeof(Z),sizeof(A));
printf_s(buf);
Sleep(100000);
return 0;

}

输出: sizeof(X)=4,sizeof(Y)=8,sizeof(Z)=8,sizeof(A)=12

上面的对象模型又是什么?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: