Mam sobie strukturę klas:
class A{};
class B:public A{};
class C:public A{};
Chcę stworzyć klasę D, która będzie miała właściwości zarówno B jak i C:
class D:public B,public C{};
Umówmy się, że A, B i C są klasami bibliotecznymi i nie mogę ich zmienić. Oczywiście teraz będzie błąd kompilacji "ambigous base". Dodanie virtual w dziedziczeniu nic nie zmieni, bo B i C już dziedziczą niewirtualnie po A.
Jak obejść ten błąd?