Tamanho das classes no caso de herança virtual
Alguém pode explicar sobre o tamanho das classes no caso de herança virtual envolvendo funções virtuais.
<code> class A{ char k[ 3 ]; public: virtual void a(){}; }; class B : public A{ char j[ 3 ]; public: virtual void b(){}; }; class C : public virtual A{ char i[ 3 ]; public: virtual void c(){}; }; class D : public B, public C{ char h[ 3 ]; public: virtual void d(){}; }; </code>
A saída do tamanho das classes é:
<code> sizeof(A): 8 sizeof(B): 12 sizeof(C): 16 sizeof(D): 32 </code>
O compilador que estou usando égcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3)