Я делаю некоторую ревизию моего C++, и я имею дело с перегрузкой оператора в минуту, в частности с оператором «=» (присваивание). Я смотрел онлайн и сталкивался с несколькими темами, обсуждая это. В моих собственных заметках, у меня есть все мои примеры снесли как нечто вродеЗачем оператор присваивания возвращает ссылку на объект?
class Foo
{
public:
int x;
int y;
void operator=(const Foo&);
};
void Foo::operator=(const Foo &rhs)
{
x = rhs.x;
y = rhs.y;
}
Во всех ссылках, которые я нашел в Интернете, я заметил, что оператор возвращает ссылку на объект источника. Почему правильный способ вернуть ссылку на объект, а не на ничего?
Правильный путь любым способом реализует семантику вы хотите; путь _idiomatic_, безусловно, должен возвращать 'T &' ('Foo &' в вашем примере). – ildjarn
@MooingDuck, я думаю, я сформулировал вопрос неправильно. Я исходил из того, что мои заметки были неправильными, но хотел знать, почему больше, чем было правильно. – maccard
Возможный дубликат [оператор присваивания возвращает ссылку на * это в C++] (http://stackoverflow.com/questions/5669813/assignment-operator-return-a-reference-to-this-in-c); также [Возврат * с оператором присваивания] (http://stackoverflow.com/questions/3248469/returning-this-with-an-assignment-operator) –