Klasse constructor
-
Klasse
Habe ein kleines Problem und ich verstehe einfach nicht was falsch läuft.
Möchte der Klasse von Beginn an werte zuweisen. Der Default constructor geht aber der eigene speichert keine Werte ab.class name{ int x …}; name::name(int x){ x=x;} name::name(){x=5}; int main(){ … int N=100; vector<particle> NP(N, particle(6));er speichert ums Verrecken die 6 nicht ab.
-
name::name(int x){ x=x;}Im Körper des Konstruktors verdeckt das Funktionsargument x den Member x. Du weist also dem übergebenen x sich selber zu. Du meinst wohl:
name::name(int x){ this->x=x;}oder besser mit Initialisierungsliste (und woher du die Schreibweise wohl auch übernommen hast, ohne sie zu verstehen):
name::name(int x): x(x){}Hier ist klar, dass das erste x nur der Member x sein kann, das zweite x nur das Argument des Konstruktors.
-
Danke läuft
