sizeof 类

本文详细解析了C++中类的大小计算方法及其在继承机制中的变化,特别是虚拟继承与多重继承的情况。通过具体实例说明了成员变量、虚函数指针及虚基类指针如何影响类的总大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.class K

{

 

};

sizeof(K) = 1;

 

2. class A

{

  int a;

  void a();

};

sizeof(A) = 4;

 

3. class B

{

   int b;

   virtual void b();

 }

 sizeof(B) = 4+4;

 

4. class C:virtual public B

{

   int c;

   virtual void c();

};

sizeof(C)=4+4+4+4+4;

 

5. class D:virtual public B

{

   int d;

   virtual void d();

}

sizeof(D)=4+4+4+4+4;

 

6. class E:public C,public D

{

  int e;

}

sizeof(E) = 4+2*(4+4+4+4+4)-4;

 

总结:sizeof 类 = 成员变量+虚函数指针。sizeof 继承类 = 本身成员变量+父类的大小,如果是虚拟继成的话,则另外加一个指向父类指针的大小;当多重继承的时候,如例6中,所示,这时候只需要,保留一份指向虚基类B的指针,所以得减掉一个指针的大小。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值