虚拟继承体系下对象的大小
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
上面的对象模型又是什么?
#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
上面的对象模型又是什么?
相关文章推荐
- 虚拟继承的类对象的空间大小
- 虚拟继承和多重继承中类对象的大小
- 虚拟继承的类对象的空间大小
- C++基础之--------虚拟继承的类对象的空间大小
- 使用sizeof计算虚拟继承的类对象的空间大小
- 浅析GCC下C++多重继承 & 虚拟继承的对象内存布局
- 三十二、C++内存布局,对象大小计算、虚函数虚继承对类内存模型的影响
- C++多重继承和虚拟继承对象模型、效率分析
- C++虚拟继承__对象内存的分布_虚继承会多余分配虚表v-tab的指
- Data语意学之虚继承和虚函数对C++对象内存模型造成的影响(类/对象的大小)
- C++ - 多重继承和虚拟继承对象模型、效率分析
- [置顶] 从零开始学C++之虚继承和虚函数对C++对象内存模型造成的影响(类/对象的大小)
- 【C++】菱形虚拟继承对象模型分析
- 菱形继承与虚拟菱形继承对象模型
- C++虚拟多重继承对象模型讨论
- C++对象内存布局--⑦VS编译器--虚拟继承多个基类
- C++虚拟多重继承对象模型讨论
- 虚继承和虚函数对c++对象存储模型的影响(类/对象的大小)
- 浅析GCC下C++多重继承 & 虚拟继承的对象内存布局
- C++对象内存布局--⑧GCC编译器--虚拟继承多个基类