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(派生类)