1 class A { 2 public: 3 int a; 4 int aa; 5 6 A() 7 { 8 a=1; 9 aa=2; 10 } 11 int afoo(); 12 int foo(); 13 14 }; 15 16 17 18 class B { 19 public: 20 int b; 21 int bb; 22 23 B() 24 { 25 b=3; 26 bb=4; 27 } 28 int bfoo(); 29 int foo(); 30 31 }; 32 33 34 35 class C { 36 public: 37 int c; 38 int cc; 39 40 C() 41 { 42 c=5; 43 cc=6; 44 } 45 int cfoo(); 46 int foo(); 47 48 }; 49 50 51 52 class D : private A, public B, protected C { 53 public: 54 int d; 55 int dd; 56 57 D() 58 { 59 d =7; 60 dd=8; 61 } 62 int dfoo(); 63 int foo(); 64 65 }; 66 67 68 class E : public A, B, protected C { 69 public: 70 int e; 71 int ee; 72 73 E() 74 { 75 e =9; 76 ee=10; 77 } 78 int efoo(); 79 int foo(); 80 81 }; 82 83 84 class F : A, public B, C { 85 public: 86 int f; 87 int ff; 88 89 F() 90 { 91 f =11; 92 ff=12; 93 } 94 int ffoo(); 95 int foo(); 96 97 }; 98 99 class G : private A, public B, protected C { 100 public: 101 int g; 102 int gg; 103 int a; 104 int b; 105 int c; 106 107 G() 108 { 109 g =13; 110 gg =14; 111 a=15; 112 b=16; 113 c=17; 114 115 } 116 int gfoo(); 117 int foo(); 118 119 }; 120 121 122 123 124 int A::afoo() { 125 return 1; 126 } 127 128 int B::bfoo() { 129 return 2; 130 } 131 132 int C::cfoo() { 133 return 3; 134 } 135 136 int D::dfoo() { 137 return 4; 138 } 139 140 int E::efoo() { 141 return 5; 142 } 143 144 int F::ffoo() { 145 return 6; 146 } 147 148 int G::gfoo() { 149 return 77; 150 } 151 152 int A::foo() 153 { 154 return 7; 155 156 } 157 158 int B::foo() 159 { 160 return 8; 161 162 } 163 164 int C::foo() 165 { 166 return 9; 167 168 } 169 170 int D::foo() 171 { 172 return 10; 173 174 } 175 176 int E::foo() 177 { 178 return 11; 179 180 } 181 182 int F::foo() 183 { 184 return 12; 185 186 } 187 188 int G::foo() 189 { 190 return 13; 191 192 } 193 194 195 void marker1() 196 { 197 } 198 199 200 int main(void) 201 { 202 203 A a_instance; 204 B b_instance; 205 C c_instance; 206 D d_instance; 207 E e_instance; 208 F f_instance; 209 G g_instance; 210 211 #ifdef usestubs 212 set_debug_traps(); 213 breakpoint(); 214 #endif 215 216 217 marker1(); // marker1-returns-here 218 219 a_instance.a = 20; // marker1-returns-here 220 a_instance.aa = 21; 221 b_instance.b = 22; 222 b_instance.bb = 23; 223 c_instance.c = 24; 224 c_instance.cc = 25; 225 d_instance.d = 26; 226 d_instance.dd = 27; 227 e_instance.e = 28; 228 e_instance.ee =29; 229 f_instance.f =30; 230 f_instance.ff =31; 231 232 233 234 235 return 0; 236 237 } 238 239 240 241