Simple Mehrfachvererbung

Beispielprogramm MEHRVER1.CPP

Schon der ersten Blick auf MEHRVER1.CPP wird Dir enthüllen, daß wir in den Zeilen 4 und 22 zwei einfache Klassen definieren, FahrenderLastwagen und Fahrerin.

Um das Programm möglichst einfach zu halten, haben wir alle Methoden inline definiert. Somit findet sich der Code für die Methoden schnell. Alle Variablen in beiden Klassen haben wir als protected deklariert, sie sind also in allen abgeleiteten Klassen verfügbar. Den Code selbst haben wir möglichst einfach gehalten, um uns auf das Studium der Schnittstelle konzentrieren zu können anstatt uns mit komplexen und -izierten Methoden herumschlagen zu müssen. [Lieber schon schlagen wir uns mit komplexierten Sätzen (herum)!] Wie wir schon festgestellt haben, wird sich das Kapitel 12 dann mit nicht-trivialen Methoden befassen.

In Zeile 32 beginnen wir die Definition einer weiteren Klasse mit dem Namen GefahrenerLaster, die alle Daten und alle Methoden der beiden zuvor definierten Klassen übernimmt. In den letzten beiden Kapiteln haben wir uns damit befaßt, wie wir eine Klasse beerben. Das ableiten einer Klasse aus zwei oder mehreren Klassen geschieht im Grunde genauso, nur daß wir eine Liste von Elternklassen, die durch Beistriche getrennt sind, verwenden, wie etwa in Zeile 32. Du hast sicherlich bemerkt, daß wir vor den Klassennamen das Schlüsselwort public verwenden, um die Methoden der Elternklasse in der Subklasse frei verwenden zu können. In diesem Fall haben wir keine neuen Variablen definiert, führen mit der Subklasse aber zwei neue Methoden ein, in den Zeilen 35 bis 42.

Wir definieren ein Objekt mit dem Namen MercedesBMW, was bedeuten soll, daß jemand mit dem Namen Mercedes einen (hypothetischen) BMW Lastwagen fährt. Das Objekt MercedesBMW besteht aus vier Variablen, drei von der Klasse FahrenderLastwagen und die eine der Klasse Fahrerin. Alle vier Variablen können wir in jeder der Methoden der Klasse GefahrenerLaster in derselben Weise manipulieren wie in einer Klasse, die nur von einer Basisklasse abgeleitet ist. Einige Beispiele findest Du in den Zeilen 50 bis 59 des Hauptprogrammes und es sollte Dir ein Leichtes sein, weitere Bildschirmausgaben hinzuzufügen.

Alle Regeln, die wir bei der einfachen Vererbung für private und protected Variablen und public und private Methodenübernahme aufgestellt haben, gelten auch für die Mehrfachvererbung.

(weiter...)