Sto eseguendo alcune revisioni del mio C++ e ho a che fare con il sovraccarico dell'operatore al minuto, in particolare con l'operatore "=" (assegnazione). Stavo cercando online e ho incontrato più argomenti per discuterne. Nei miei appunti, ho tutti i miei esempi presi in giù come qualcosa di simile aPerché l'operatore di assegnazione dovrebbe restituire un riferimento all'oggetto?
class Foo
{
public:
int x;
int y;
void operator=(const Foo&);
};
void Foo::operator=(const Foo &rhs)
{
x = rhs.x;
y = rhs.y;
}
In tutti i riferimenti che ho trovato on-line, ho notato che l'operatore restituisce un riferimento all'oggetto di origine. Perché è il modo corretto per restituire un riferimento all'oggetto in contrasto con il nulla?
Il modo corretto è qualunque modo implementa la semantica che si desidera; il modo _idiomatic_ è certamente quello di restituire 'T &' ('Foo &' nel tuo esempio). – ildjarn
@MooingDuck, immagino di aver sbagliato la domanda. Stavo partendo dal presupposto che i miei appunti erano sbagliati, ma volevo sapere perché più di quello era corretto. – maccard
possibile duplicato di [operatore di assegnazione restituisce un riferimento a * questo in C++] (http://stackoverflow.com/questions/5669813/assignment-operator-return-a-reference-to-this-in-c); anche [Restituzione * di questo con un operatore di assegnazione] (http://stackoverflow.com/questions/3248469/returning-this-with-an-assignment-operator) –