lese ich ein article on rvalue-references, aber ich habe durch den folgenden Auszug verwechselt werden:Was bedeutet `a = b()`, wenn sowohl `a` als auch` b` die Klasse `X` haben?
X foo();
X x;
// perhaps use x in various ways
x = foo();
Hier X einig benutzerdefinierte Typ.
Ich weiß, dass X foo();
wird X Konstruktor aufrufen, und ich bin mir ziemlich sicher X x;
wird nicht.
Aber was bedeutet die Linie x = foo();
? Wird ein Konstruktor aufgerufen? Und was würde x = foo;
tun?
Versuchen Sie, wie ich könnte, konnte ich nicht die richtigen Worte herausfinden, um herauszufinden, was dieser Code bedeutet.
Ich bin mir ziemlich sicher 'X foo();' ist eine Funktionsdeklaration. – tkausl
Sie schreiben * "Ich bin mir ziemlich sicher, X x; wird nicht [den Konstruktor von X aufrufen]" * Warum sagst du das? – MFisherKDX
Ich war unter diesem Eindruck, da C++ eine Methode zum Deklarieren eines Objekts ohne Aufruf des Konstruktors – Mahkoe