virtuelle Basisklassen (2/2)

Wird die Baisklasse einmal public virtual und einmal private virtual abgeleitet, so wird in davon abgeleiteten Klassen die public -Aleitung dominieren.

Der Konstruktor der virtuellen Basisklasse muß in obigem Beispiel von der Klasse B explizit aufgerufen werden, wenn nicht der Default-Konstruktor benutzt werden soll. Bei nicht-virtuellen Basisklassen ist es nicht möglich indirekte Basisklassen explizit zu initialisieren.

Wenn die Basisklassen von B Konstruktoren zur Verfügung stellen kann eine Definition des Konstruktors von B z. B. folgendermaßen aussehen:

B::B(int a, int b, char c, char d) : A(a, b), Aa(c), Ab(d) {}