void TestWielodziedziczeniaO
C4 c4;
c4.C2::Metoda1 (); c4.C3::Metoda2(); c4.C3::Metoda3();
W wypadku wielodziedziczenia, gdy kilka klas podstawowych ma składowe o tych samych nazwach, lub kilka klas podstawowych ma wspólną klasę macierzystą wówczas może wystąpić problem niejednoznaczności nazw metod. Co na przykład oznacza c4::Metodal() w pierwszym fragmencie kodu? Mogłaby to być metoda Metodał, którą klasa C4 dziedziczy po klasie C3, a klasa C3 — po klasie Cl. Ale równie dobrze mogłaby to być metoda Metodal dziedziczona przez klasę C4 po klasie C2, która z kolei dziedziczy ją po klasie Cl?
Nawet jeśli dziedziczenie z jednej tych z klas jest prywatne i ostatecznie metoda nie jest dostępna, to nazwa metody nadal będzie wieloznaczna.
Aby rozwiązać ten problem, trzeba określić jawnie, z której klasy pochodzi metoda, którą wywołujemy, tak jak pokazano we fragmencie „Po”.
Przykład: TestMultlnheritO w pliku inherit.cpp