1 // prms-id: 4623
2 
3 class base {
4 public:
5   int b_data;
6   base( int i=0 ) { b_data = i; }
b_print()7   void b_print() { }
8 };
9 
10 class base1: virtual public base {
11 public:
12   int b1_data;
13   base1( int i = 0 ) { b1_data = i; b_data++; }
b1_print()14   void b1_print() { }
15 };
16 
17 class base2: virtual public base {
18 public:
19   int b2_data;
20   base2( int i = 0 ) { b2_data = i; b_data++; }
b2_print()21   void b2_print() { }
22 };
23 
24 class base3: public base {};
25 
26 class derived: public base3, public base1, public base2 {
27 public:
28   int d_data;
derived(int i)29   derived( int i ) { d_data = i; ((base3 *)this)->b_data++; }
d_print()30   void d_print() { }
31 };
32 
main()33 int main() {
34   derived d(1); d.d_print(); return 0;
35 }
36