1// Special g++ Options: -w 2 3class A { 4public: 5 virtual ~A(){}; 6 virtual int type(void) { 7 return -1; 8 } 9}; 10 11class B : public A { 12public: 13 virtual ~B(){}; 14}; 15 16 17class C0 : public B, public virtual A { 18public: 19 virtual int type(void) { 20 return 0; 21 } 22}; 23 24class C1 : public C0 25{ 26public: 27 virtual int type(void) { 28 return 1; 29 } 30}; 31 32class C2 : public C0 { 33public: 34 virtual int type(void) { 35 return 2; 36 } 37}; 38 39main() { 40 C1 *one = new C1; 41 42 if (one->type() != 1) 43 return 1; 44} 45