Initialisierungsreihenfolge in Initialisierungsliste
-
In welcher Reihe werden die Membervariablen einer Klasse in der Initialisierungsliste initialisiert?
Das ist doch einfach von oben nach unten, wie sie in der Definition auftauchen, oder?
-
Wieso willst du das wissen? Das entscheidende ist doch, dass du beim Eintritt in den Funktionsrumpf des c-tors ein vollständig initialisiertes Objekt hast!?
Greetz, Swordfish
-
thomas r. schrieb:
In welcher Reihe werden die Membervariablen einer Klasse in der Initialisierungsliste initialisiert?
Das ist doch einfach von oben nach unten, wie sie in der Definition auftauchen, oder?Wenn du damit die Klassendefinition meinst, genau. Anders ausgedrückt: Member werden in ihrer Deklarationsreihenfolge initialisiert. Die Reihenfolge in der Initialisierungsliste wird ignoriert.
-
Swordfish schrieb:
Wieso willst du das wissen? Das entscheidende ist doch, dass du beim Eintritt in den Funktionsrumpf des c-tors ein vollständig initialisiertes Objekt hast!?
Spätestens, wenn du Initialisierungsabhängigkeiten hast, musst du das wissen.
-
alles klar, danke
-
HumeSikkins schrieb:
Swordfish schrieb:
Wieso willst du das wissen? Das entscheidende ist doch, dass du beim Eintritt in den Funktionsrumpf des c-tors ein vollständig initialisiertes Objekt hast!?
Spätestens, wenn du Initialisierungsabhängigkeiten hast, musst du das wissen.
Du meinst sowas:
class foo { int m_a; int m_b; } foo::foo( ) : m_a( 0 ), m_b( m_a ) { }?
Also würd' bei in umgekehrter Reihenfolge deklarierten Membern m_a und m_b für m_b quatsch rauskommen?
Greetz, Swordfish
-
Jep.
-
.filmor schrieb:
Jep.
f*ck!
*alle_klassendeklarationen_und_initialisierungslisten_in_meinem_aktuellen_projekt_durchguck*

Greetz, Swordfish