Initialisierung von Membervariablen.
-
Wie ist das eigentlich, werden Membervariablen vom Compiler initialisiert, wenn es der Programmierer nicht tut?
Ist das iwo im Standard definiert?em-ef-ge
-
Sie erhalten eine Defaultvalue und die ist Abhängig von Datentyp und Implementation.
-
membär schrieb:
Wie ist das eigentlich, werden Membervariablen vom Compiler initialisiert, wenn es der Programmierer nicht tut?
Ist das iwo im Standard definiert?Bei Wertetypen wird der Standardkonstruktor aufgerufen, Referenztypen bekommen den Wert
null
zugewiesen.Grüssli
-
Es wird immer alles mit Nullbytes vollgekleistert, das erledigt bereits der Allocator.
Wertetypen können gar keinen (userdefinierten) Default-Konstruktor haben.
Die offizielle Begründung von MS ist die, dass die Runtime bei Wertetypen nicht sicher stellen könnte, dass der ctor für Wertetypen auch wirklich in jeder Situation läuft. (Wobei ich nicht verstehe wieso das ein Problem sein sollte, aber naja, das ist die offizielle Begründung)