Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

C++ Grundkurs

Konstruktoren delegieren

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Die Delegation von Konstruktoren dient in C++ dazu, einen Konstruktor mit Hilfe eines weiteren aufzurufen.
02:39

Transkript

In dieser Lektion will ich Ihnen die Delegation von Konstruktoren vorstellen. Ein Konstruktor kann einen anderen Konstruktor der gleichen Klasse aufrufen. Dabei muss dieser aufgerufene Konstruktor in der Initialisiererliste spezifiziert werden. Das ist die Initialisiererliste und das ist der Konstruktor, der den *Account* aufruft. Der beginnt mit dem Doppelpunkt und endet mit den geschweiften Klammern. Bei der Delegation von Konstruktoren gilt es zwei Regeln im Kopf zu behalten. Erstens, das Objekt gilt als fertig konstruiert, sobald der erste Konstruktor fertig ist, in diesem Fall sobald *Account* fertig ist. Zweitens, indem der Konstruktor direkt oder indirekt sich selbst aufruft, es also eine Rekursion vorliegt, ist das Ergebnis *undefined behaviour*. *Undefined behaviour* heißt in C++, es kann alles passieren. Das Programm kann abstürzen. Sie können eine Fehlermeldung beim Übersetzen erhalten. Es kann ein falsches Ergebnis liefern oder, was das Bösartigste ist, es kann vermeintlich korrekt funktionieren. Jetzt will ich Ihnen alles noch in der Anwendung zeigen. Hier habe ich eine Klasse *MyHour*, die eine Stunde repräsentiert. Für die Klasse *Stunde* habe ich drei verschiedene Konstruktoren definiert. Einmal einen Konstruktor, der natürliche Zahlen annimmt. Einmal einen, der kein Argument benötigt, ein sog. Default-Konstruktor, der diesen Konstruktor von hier oben verwendet, indem er den Wert 0 setzt und der dritte Konstruktor ist ein Konstruktor, der eine *double*-Zahl annimmt und seine Arbeit an den ersten Konstruktor hier oben delegiert, indem er den *double*-Wert auf die nächst größere natürliche Zahl erweitert. Der einzige Konstruktor, der wirklich was zu tun hat, ist der erste Konstruktor. Der prüft, ob die Zahl zwischen 0 und 23 ist. Jeweils inklusive zu sehen. Wenn ja, setzt er seine interne Variable *myHour* auf diese Zahl. Wenn nein, setzt er sie auf 0. Hier sehen Sie, wie ich den Konstruktor verwenden kann. *MyHour* von 10 ergibt 10. *MyHour* von 100, das ist ein ungültiger Wert, also bekomme ich die 0. Wenn ich den Default-Konstruktor aufrufe, führt es dazu, dass dieser Konstruktor hier verwendet wird. Das führt also auch zu 0. Die 22.45 wird auf die 23 gerundet. So erhalte ich *MyHour* ist gleich 23. In dieser Lektion habe ich Ihnen die Delegation von Konstruktoren vorgestellt. Durch die Delegation von Konstruktoren erreichen Sie es, dass ein Konstruktor einen anderen Konstruktor der gleichen Klasse aufrufen kann. Bei der Delegation von Konstruktoren gibt es aber eine große Gefahr, indem Sie einen Konstruktor verwenden, der sich direkt oder indirekt selbst aufruft.

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!