Frage zu Konstruktoren
-
Hallo ich habe eine grundlegende Frage zu Konstruktoren.
angenommen ich habe einen Konstruktor mit Elementinitalisierungsliste
Konto (int nr = 0, float betrag = 0.0) --> das ist mir klar
: KtoNr(nr), Stand(betrag), Nachfolger(0)aber ab dem Doppelpunkt, weiß ich nicht mehr weiter...
Vielleicht könnte mir jemand erklären, was dieser Doppelpunkt speziell, und der daraufolgende Code für Aufgaben bzw. Zwecke erfüllt!!!
Danke für die Hilfe
-
Hi,
Konto (int nr = 0, float betrag = 0.0) : KtoNr(nr), Stand(betrag), Nachfolger(0) // Initalisiert die Variablen...Ist also das gleiche wie:
Konto (int nr = 0, float betrag = 0.0) { KtoNr = nr; Stand = betrag; Nachfolger = 0; }Gruß
Patrick
-
Hallo
Die Membervariablen werden eben initialisiert. Es werden Ihnen Werte zugewiesen.
chrische
-
Also im Endeffekt nur eine Variablendefinition im Konstruktorkörper??
-
Dummie schrieb:
Hi,
Konto (int nr = 0, float betrag = 0.0) : KtoNr(nr), Stand(betrag), Nachfolger(0) // Initalisiert die Variablen...Ist also das gleiche wie:
Konto (int nr = 0, float betrag = 0.0) { KtoNr = nr; Stand = betrag; Nachfolger = 0; }Gruß
Patricknein....
Die Init-Liste wird VOR dem Konstruktorrumpf abgearbeitet!
Das ist sehr wichtig, wenn du referenzen oder constanten als Member hast, diese kannst du nur in der Iinit-Liste initialisieren!IMHO wird sie auch dazu verwendet, um den parametrisierten Konstruktor der Basisklasse (solltest du vererbt haben) korrekt aufzurufen.
-
Dummie schrieb:
Hi,
Konto (int nr = 0, float betrag = 0.0) : KtoNr(nr), Stand(betrag), Nachfolger(0) // Initalisiert die Variablen...Ist also das gleiche wie:
Konto (int nr = 0, float betrag = 0.0) { KtoNr = nr; Stand = betrag; Nachfolger = 0; }Gruß
PatrickNicht ganz. Das erste ist Initalisierung beim zweiten haben die Daten schon irgendwelche Werte und du weist ihnen nur was zu ...