Frage zur Initialisierung
-
Hallo,
folgendes Problem:
// Blah.h class Blah { private: struct Elemente { int a; int b; }elemente; public: Blah(); ~Blah() {} };// Blah.cpp Blah::Blah() { Blah::Elemente elemente = {}; }Meine Frage ist nun, ob bei der Konstruktordefinition die Objektvariable intialisiert wird, oder eine neue Variable in der Methode deklariert und initialisiert wird, und warum dies so ist.
Vielen Dank für eure Ratschläge!
-
Der Code erzeugt eine neue lokale Variable, die das Klassen-Element verdeckt (durch die Angabe des Typs hast du dort eine Deklaration - und eine Deklaration erzeugt nunmal eine Variable). Um das Klassen-Element zu verwenden, müsstest du die Typ-Angabe weglassen (aber dann ist der code nicht mehr legal, weil die Initialisierungsliste nur bei Deklarationen erlaubt ist).
-
Aha!
Danke.