Path: utzoo!attcan!uunet!wuarchive!cs.utexas.edu!sun-barr!ccut!kogwy!new1!hagiwara From: hagiwara@zuken.co.jp (Kazuyuki Hagiwara) Newsgroups: comp.lang.c++ Subject: Multiple inheritance with virtual bases Message-ID: Date: 18 Oct 90 15:50:13 GMT Sender: news@new1.zuken.co.jp Distribution: comp Organization: ZUKEN Inc. Yokohama, JAPAN Lines: 47 I am using AT&T C++ version 2.0. Following is the simple test of multipile inheritance with virtual base classes. Do anyone know the reason why sizeof(D) is so large ? I think sizeof(D) should be only 1000 bytes and some pointer overhead. ----------------------------- mibug.C { ---------------- #include struct A { char avar0[1000]; }; struct B : virtual public A { int bvar; }; struct C : virtual public A { int cvar; }; struct D : virtual public B, virtual public C { int dvar; }; main() { A a1; B b1; C c1; D d1; cout << "sizeof A: " << sizeof(A) << endl; cout << "sizeof B: " << sizeof(B) << endl; cout << "sizeof C: " << sizeof(C) << endl; cout << "sizeof D: " << sizeof(D) << endl; } ----------------------------- } mibug.C ---------------- ----- output of mibug { ------- sizeof A: 1000 sizeof B: 1008 sizeof C: 1008 sizeof D: 2032 ----- output of mibug } ------- -- Kazuyuki Hagiwara @ Zuken, Inc. Yokohama, Japan (hagiwara@zuken.co.jp)