Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1698407
  • 博文数量: 210
  • 博客积分: 10013
  • 博客等级: 上将
  • 技术积分: 2322
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-25 15:56
文章分类

全部博文(210)

文章存档

2011年(34)

2010年(121)

2009年(37)

2008年(18)

我的朋友

分类: C/C++

2010-07-08 10:32:17

C++中类的大小和结构体中的一样,涉及到字节对齐,在前一篇文章中有所提及。但是一个空类的大小是多少呢?
下面来看这段代码:
 

using namespace std;
class A{
};
class B:public A{
};

class C:public virtual A{
};

class D:public A public B{

};
int _tmain(int argc, _TCHAR* argv[])
{
    cout<<sizeof(A)<<endl;//1

    cout<<sizeof(B)<<endl;//1
    cout<<sizeof(C)<<endl;//4

    cout<
}


空类所占的空间是1,单一继承的空类空间依然是1;多重继承的空类空间依然是1;但是虚继承设计到虚表(虚指针),所以大小为4。
阅读(466) | 评论(0) | 转发(0) |
0

上一篇:结构体数据对齐

下一篇:C++函数指针

给主人留下些什么吧!~~