Einige Probleme bei mehrfacher Vererbung (3/3)

Mehrdeutigkeiten durch mehrmaliges Vorkommen einer Basisklasse

Kommt eine Basisklasse mehrfach vor, so kann es natürlich auch zu Mehrdeutigkeiten kommen:

class A
{
  public:
    int x;
};
class Aa : public A { ... };
class Ab : public A { ... };
class B : public Aa, public Ab { ... };

B b;
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.