Next: Verstehen was man tut
Up: 50 Ways to Improve
Previous: Templates und Vererbung
Mehrfachvererbung birgt die Gefahr der Mehrdeutigkeit:
class mensch
{ ...
public:
void augen();
void nase();
void mund();
void backen();
};
class kuchen
{ ...
public:
void ruehren();
void backen();
void essen();
};
class baecker : public mensch,
public kuchen
{ ... };
...
baecker vogt;
vogt.backen(); // FEHLER !
Außerdem gelten folgende Besonderheiten:
- Der Konstruktor einer virtuellen Basisklasse wird von der
am weitesten abgeleiteten Klasse aufgerufen.
- Für virtuelle Basisklasse gilt die Dominator-Regel zur Identifikation
von Elementnamen.
- Ein Downcast (siehe 9.39)
von virtuellen Basisklassen ist verboten.
Next: Verstehen was man tut
Up: 50 Ways to Improve
Previous: Templates und Vererbung
Peter Pfahler, 1997