Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

C++ Grundkurs

Initialisierung

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Ein entsprechender Initialisierer für Instanzvariablen gibt die Art und Weise der Initialisierung dieser an.
02:47

Transkript

In dieser Lektion werde ich Ihnen die "Initialisierer für Instanzen" vorstellen. Die Initialisierung geschieht vor dem Aufruf des "Konstruktors" und sie ist dazu da, die "Instanzvariablen" zu initialisieren. Die Initialisierer werden direkt an die Signatur des Konstruktors angehängt. Das sehen Sie hier. Zwischen dem Doppelpunkt hier und den geschweiften Klammern hier können Sie den Initialisierer für den Konstruktor angeben. Sie müssen sie durch Komma trennen. Durch "b" wird "balance" initialisiert, durch "25 minBalance" initialisiert. Für die Initialisierer für Instanzen müssen Sie ein paar Regeln im Kopf behalten. Die zeige ich Ihnen jetzt. Wenn Sie Instanzvariablen haben, die "const" sind oder eine Referenz darstellen, müssen Sie sie im Initialisierer definieren, sonst bekommen Sie einen Kompilierfehler. Da müssen natürlich die Initialisierer zu den zu initialisierenden Werten passen. Sie müssen sich zumindest konvertieren lassen. Die Initialisierung findet in der Reihenfolge statt, indem Sie die Instanzvariablen in der Klasse definiert haben. Das ist eine wichtige Regel, die Sie im Kopf behalten müssen. Für "statische Daten-Member" gilt das nicht. Die müssen Sie außerhalb der Klasse initialisieren. Wenn Sie eine Instanzvariable haben, die auch in der Klasse initialisiert wird, besitzt der Initialisierer Vorrang. Nun zeige ich Ihnen noch die Theorie am Beispiel. Hier die bekannte Klasse "Account". Die besitzt einen sehr einfachen Konstruktor. Den verwende ich, um die Instanzvariablen balance, minBalance, const ist das, und reviser, das ist ein "std;;string rev", zu initialisieren. Das tue ich dadurch, dass ich hier die Initialisierer angebe. Ich mache es in der Reihenfolge, in der sie unten deklariert sind. Sie sehen, wenn ich das Programm übersetze, passiert nicht viel Spannendes. Das Programm ist wohldefiniert und verhält sich richtig. Was passiert aber jetzt, wenn ich diesen Account-Konstruktor durch diesen hier austausche? Ich übersetze noch einmal und Sie sehen, ich bekomme zwei Fehlermeldungen. Im Prinzip sind es zwei, auch wenn ich hier drei Zeilen habe. Als erstes stellt er fest, dass sowohl "Account::minBalance", wie "Account::reviser" nicht initialisiert sind. Die Gründe sind, dass das "minBalance" hier "const" ist. Dadurch kann ich es nur im Initialisierer hier oben initialisieren wie hier oben. Aber hier nicht im Körper des Konstruktors. Das Gleiche gilt für die Referenz. Die kann ich auch nicht im Körper des Konstruktors, die muss ich im Initialisierer hier oben initialisieren. In dieser Lektion habe ich Ihnen die "Initialisierung von Instanzenvariablen" gezeigt und insbesondere darauf aufmerksam gemacht, dass Sie konstante Instanzvariablen oder Instanzvariablen, die Referenzen sind, im "Initialisierer" initialisieren müssen, sonst gibt es eine Fehlermeldung vom Compiler.

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!