#include <iostream>using namespacestd;//-------------------------------classa1{ Public: intA; Public: voidm ();};voida1::m () {cout<<"a1::m (): A="<< This->a<<Endl;}//-------------------------------classA2 { Public: intA; voidm ();};voida2::m () {cout<<"a2::m (), a="<< This->a<<Endl;}//-------------------------------classD | PublicA1, Publica2{ Public: voidshow ();};voidb::show () {cout<<"a1::a="<< This->a1::a<<Endl; cout<<"a2::a="<< This->a2::a<<Endl;}//-------------------------------voidF1 () {b b; B.a1::a= the; B.a2::a=32432; B.a1::m ();//at this time can not use B.M (), with ambiguity;B.a2::m ();//clear object with Format b.a1::m (), B.a2::m (), disambiguationb.show ();}intMain () {F1 (); while(1); return 0;}
/* Test results:
A1::m (): a=34
A2::m (), a=32432
A1::a=34
a2::a=32432
*/
C + +, multiple inheritance caused by ambiguity and solutions