Rückkehr kann ich nicht Sinn der folgenden machen:einen Verweis/L-Wert
nehme ich einen überladenen Zuweisungsoperator erschaffe. Die Funktion würde wie folgt sein:
MyObject& MyObject::operator=(const &rhs)
{
// code to make this work
return *this;
}
Wenn ‚dies‘ ist bereits ein Hinweis, warum ich zu dereferenzieren es brauchen? Warum muss ich das Objekt und nicht einen Verweis auf ein Objekt zurückgeben, wie vom Rückgabetyp angegeben? Mit anderen Worten, warum dies nicht nur tun:
MyObject& MyObject::operator=(const &rhs)
{
// code to make this work
return this;
}
Alternativ, warum nicht auch dies:
MyObject MyObject::operator=(const &rhs)
{
// code to make this work
return *this;
}
Ich bin sehr verwirrt.
Sie können hinzufügen, dass die Standard "Konzepte" 'MoveAssignable' und' CopyAssignable' erfordern, dass der Rückgabetyp 'T &' ist und der zurückgegebene Wert dem zuzuweisenden Objekt entspricht, also jede Klasse, die korrekt zusammenarbeiten möchte mit der Standard-Bibliothek tun müssen, was Sie "üblich" nennen. – Angew