Как указывает Навин, вам нужно вернуть *this
.
Просто быстрый совет: способ выяснить, что означают несколько непонятные ошибки компилятора, состоит в том, чтобы попробовать компилировать на другом компиляторе, чтобы увидеть, есть ли лучшее сообщение. Например, вы можете использовать Comeau online .
В этом случае это дает:
"ComeauTest.c", line 7: error: initial value of reference to non-const must be an
lvalue
return this;
^
Не уверен, что в этом случае лучше, но в некоторых случаях сообщения намного лучше.