C++ Grundkurs

Basisklasseninitialisierung

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die Basisklassen-Initialisierung legt den Aufruf der Konstruktoren der Basisklasse fest. Dieses Video erläutert grundlegende Informationen hierüber.
03:21

Transkript

In dieser Lektion will ich Ihnen Basisklassen-Initialisierer in C++ vorstellen. Basisklassen-Initialisierer spezifizieren die Daten, die an den Konstruktor der Basisklasse übergeben werden. Diese Daten werden direkt im Konstruktor in einer kommaseparierten Liste angegeben. Hier habe ich ein Beispiel. Ich habe die Klasse *Account*. Die besitzt den Konstruktor, der ein *double* und einen *string* annimmt. Von dieser Klasse *Account* leite ich öffentlich die Klasse *BankAccount* ab. Diese Klasse *BankAccount* muss natürlich ihr Subobjekt *Account* initialisieren und das geschieht hier in dem roten Ausdruck hier. Hier wird der Basisklassen-Initialisierer aufgerufen in der sog. Initialisierungsliste des Konstruktors. Wenn ich mehrere Argumente angeben würde, müsste ich diese durch Kommas trennen. Noch ein paar Regeln. Eine Falle, in die man häufig reinfliegt. Wenn für eine Basisklasse kein Default-Konstruktor verwendet wird, muss eine abgeleitete Klasse einen Basisklassen-Initialisierer für diese Klasse angeben. Heißt, wenn Sie einen besonderen Konstruktor der Basisklasse aufrufen wollen, der nicht der Default-Konstruktor ist, müssen Sie ihn explizit im Basisklassen-Initialisierer angeben. Das heißt, anders herum interpretiert natürlich, dass eine Basisklasse einen Basisklassen-Default-Destruktor benötigt. Basisklassen-Initialisierer werden häufig mit Initialisieren für die Instanzvariablen verwendet. Das Beispiel sehen Sie hier. Ich habe die Klasse *Account* mit einem Konstruktor, der ein *double* annimmt. Von der leite ich die Klasse *BankAccount* öffentlich ab. *BankAccount* bekommt genauso einen *double*-Wert und initialisiert seine Basisklasse *Account* aber auch seine Währung auf Euro. Nun zeige ich Ihnen die Basisklassen-Initialisierer in der Anwendung. Ich habe hier die Klasse *Account*. Die bekommt zwei Argumente *double* und *string*. *double* steht für den Wert des Accounts. *string* steht für die Währung. Damit initialisiere ich hier im sogenannten Konstruktor-Initialisierer den Wert *amount* und den Wert *currency*, die Instanzvariablen der Klasse *Account* sind, *amount* und *currency*. Damit wir nachher was sehen, gebe ich noch *amount* aus und gebe noch *currency* aus. Von dieser Klasse leite ich jetzt öffentlich *BankAccount* ab. *BankAccount* bekommt einen eigenen Konstruktor, damit auch *amount* und *n* initialisiert das Basisklassenobjekt *amount* mit *amount* und mit Euro und initialisiert auch noch seine eigenen Instanzvariable *name*. Steht eben für den Namen der Person, dem der Bank Account gehört. Jetzt kann ich das Ganze in der Anwendung zeigen. Ich rufe einmal *Account* auf mit 100 und USD. Dementsprechend bekomme ich Account *amount* 100 raus. Account *currency* Amerikanische Dollars. Dann initialisiere ich noch *BankAccount* mit 200 und *grimm*. In diesem Fall ist der Amount 200, ist die Währung Euro und ist der Name Grimm. Ein Punkt ist mir sehr wichtig zum Schluss noch einmal hervorzuheben. Wenn Sie eine Basisklasse über den Basisklassen-Initialisierer initialisieren, dann ist diese Form die einzige Form, die es in C++ gibt. Es gibt keine andere Form. Sie müssen also diese anwenden. In dieser Lektion habe ich Ihnen die sog. Basisklassen-Initialisierer vorgestellt. Das ist die einzige syntaktische Form, die in C++ zulässig ist. Die benötigen Sie dann, wenn Sie in einer abgeleiteten Klasse die Instanz der Basisklasse initialisieren müssen.

C++ Grundkurs

Steigen Sie in die mächtige Programmiersprache C++ ein und lernen Sie dabei alle wichtigen Funktionen mit Anwendungsbeispielen kennen.

8 Std. 14 min (147 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!