Größe der Klassen bei virtueller Vererbung
Kann jemand bitte die Größe der Klassen im Fall der virtuellen Vererbung mit virtuellen Funktionen erklären.
<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>
Die Ausgabe der Klassengröße ist:
<code> sizeof(A): 8 sizeof(B): 12 sizeof(C): 16 sizeof(D): 32 </code>
Der Compiler, den ich benutze, istgcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3)