Возвратите ссылку от класса до этого

У меня есть следующий член нечто класса.

foo &foo::bar()
{
   return this;
}

Но я получаю ошибки компилятора. Какую глупую вещь я делаю неправильно?

Ошибка компилятора (gcc): ошибка: недопустимая инициализация ссылки неконстанты типа 'foo&' от временного файла типа 'нечто* константа'

13
задан Thomas 12 April 2010 в 11:30
поделиться

2 ответа

это указатель. Таким образом, должно быть return * this;

26
ответ дан 1 December 2019 в 19:39
поделиться

Как указывает Навин out, вам нужно вернуть * this .

Просто небольшой совет: способ выяснить, что означают несколько непонятные ошибки компилятора, - это попытаться скомпилировать на другом компиляторе, чтобы увидеть, есть ли лучшее сообщение. Например, вы можете использовать Comeau online .

В этом случае это дает:

"ComeauTest.c", line 7: error: initial value of reference to non-const must be an
          lvalue
     return this;
            ^

Не уверен, что в этом случае лучше, но в некоторых случаях сообщения намного лучше.

8
ответ дан 1 December 2019 в 19:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: