definiert eine Klasse mit einem Element als Referenz Art zu schaffen:warum das erste Objekt Element wurde geändert, nachdem das zweite Objekt
struct NodeBase{
int& val;
NodeBase(int input = 0) :val{ input }{}
};
Dann zwei Objekt dieser Klasse Typ erstellt:
int value1 = 1, value2 = 2;
NodeBase first(value1);
NodeBase second(value2);
Bei Das first
wurde erstellt, sein Mitglied val
ist gleich 1. Nach dem Erstellen von second
wurde jedoch der Wert val
in first
auf 2 geändert. Nicht sicher, warum dies geschieht.
Die Referenzen baumeln, weil sie auf Werte gebunden sind, die nicht mehr am Leben sind (nämlich den Konstruktor Parameter Variable). Es ist daher ein undefiniertes Verhalten, um die Referenzen zu bewerten. –
In vordefinierte Variablen geändert und Problem ist das gleiche. – lightrek
Egal, Referenz bindet an den Funktionsparameter, der am Ende des Konstruktors stirbt. –