1 2 void marker1() 3 { 4 return; 5 } 6 7 class A1 { 8 public: 9 int x; 10 int y; 11 }; 12 13 class A2 { 14 public: 15 int x; 16 int y; 17 }; 18 19 class A3 { 20 public: 21 int x; 22 int y; 23 }; 24 25 class X : public A1, public A2 { 26 public: 27 int z; 28 }; 29 30 class L : public A1 { 31 public: 32 int z; 33 }; 34 35 class LV : public virtual A1 { 36 public: 37 int z; 38 }; 39 40 class M : public A2 { 41 public: 42 int w; 43 }; 44 45 class N : public L, public M { 46 public: 47 int r; 48 }; 49 50 class K : public A1 { 51 public: 52 int i; 53 }; 54 55 class KV : public virtual A1 { 56 public: 57 int i; 58 }; 59 60 class J : public K, public L { 61 public: 62 int j; 63 }; 64 65 class JV : public KV, public LV { 66 public: 67 int jv; 68 }; 69 70 class JVA1 : public KV, public LV, public A1 { 71 public: 72 int jva1; 73 }; 74 75 class JVA2 : public KV, public LV, public A2 { 76 public: 77 int jva2; 78 }; 79 80 class JVA1V : public KV, public LV, public virtual A1 { 81 public: 82 int jva1v; 83 }; 84 85 int main() 86 { 87 A1 a1; 88 A2 a2; 89 A3 a3; 90 X x; 91 L l; 92 M m; 93 N n; 94 K k; 95 J j; 96 JV jv; 97 JVA1 jva1; 98 JVA2 jva2; 99 JVA1V jva1v; 100 101 int i; 102 103 i += k.i + m.w + a1.x + a2.x + a3.x + x.z + l.z + n.r + j.j; 104 105 marker1(); 106 107 } 108 109 110 111