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。
阅读(468) | 评论(0) | 转发(0) |