Kommt eine Basisklasse mehrfach vor, so kann es natürlich auch zu Mehrdeutigkeiten kommen:
B b;
class A
{
public:
int x;
};
class Aa : public A { ... };
class Ab : public A { ... };
class B : public Aa, public Ab { ... };
b.x; // Fehler! Mehrdeutigkeit
Diese Mehrdeutigkeit kann aber wie oben beschrieben aufgehoben werden, indem mit dem Scope-Operator eine der beiden Basisklassen explizit angesprochen wird.