Estoy haciendo una revisión de mi C++, y estoy lidiando con la sobrecarga del operador en el minuto, específicamente el operador "=" (asignación). Estaba buscando en línea y encontré varios temas discutiéndolo. En mis propias notas, tengo todos mis ejemplos tomados abajo como algo parecido a¿Por qué debería el operador de asignación devolver una referencia al objeto?
class Foo
{
public:
int x;
int y;
void operator=(const Foo&);
};
void Foo::operator=(const Foo &rhs)
{
x = rhs.x;
y = rhs.y;
}
en todas las referencias que encontré en línea, me di cuenta de que el operador devuelve una referencia al objeto de origen. ¿Por qué es la forma correcta de devolver una referencia al objeto en lugar de la nada en absoluto?
La forma correcta es la forma que implementa la semántica que desee; la forma _idiomatic_ es sin duda devolver 'T &' ('Foo &' en tu ejemplo). – ildjarn
@MooingDuck, creo que formulé la pregunta equivocada. Iba a suponer que mis notas estaban equivocadas, pero quería saber por qué más de lo que era correcto. – maccard
posible duplicado de [operador de asignación devolver una referencia a * esto en C++] (http://stackoverflow.com/questions/5669813/assignment-operator-return-a-reference-to-this-in-c); también [Devolver * esto con un operador de asignación] (http://stackoverflow.com/questions/3248469/returnning-this-with-an-assignment-operator) –