sizeof求类大小

1、空类的大小及多重继承的空类

class A{};

class A2
{

};

class B:public A
{

};

class C:public virtual B
{

};

class D:public A, public A2
{

};

空类所占空间为1,单一继承的空类空间也为1,多重继承的空类空间也为1,虚继承涉及到虚表(虚指针)空间为4

2、简单类

class E
{
public:
int a;
char b;
};

与求struct的sizeof一样,需考虑偏移和对其,8

3、带一个或多个虚函数的类

sizeof(A的数据成员)+sizeof(指向虚表的指针)

4、普通继承

sizeof(基类)+sizeof(派生类)  

5、普通继承含虚函数的父类

sizeof(基类)+sizeof(派生类)



你可能感兴趣的:(sizeof求类大小)