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) {}