虚拟类具有更大的大小

时间:2014-07-10 15:14:06

标签: c++ oop virtual-inheritance

class abstract 
{double abs; };

class A : virtual public abstract
{ double var; };

class B : virtual public abstract
{ double var; };

class derived : public A, public B
{ double der; };
  

sizeof(摘要)= 8

     

sizeof(A)= 24

     

sizeof(B)= 24

     

sizeof(派生)= 48

为什么会这样?

(注意:相反,没有virtual类,返回的大小分别为8,16,16,40。)

1 个答案:

答案 0 :(得分:0)

它需要类型来存储更多信息以促进虚拟行为。