Функция-член возвращает функцию - PullRequest
0 голосов
/ 31 января 2012
a* b::find() const
{
  a* pointr = head;

  return pointr;

}

Это мой код, но visual studio подчеркивает точку в строке возврата? Что не так с моим кодом?

РЕДАКТИРОВАТЬ: Извините TYPO

Ответы [ 2 ]

3 голосов
/ 31 января 2012
a* pointer = head;

return pointr;   

У вас не было никакой переменной, объявленной как pointr в области действия функции. Как компилятор узнает, если вы не объявите ее?

pointr и pointer не совпадают, отсутствует e.

Предполагая, что это опечатка,
Ваша функция возвращает указатель, но важно то, на что она указывает.Если head является локальной переменной или указателем без динамического выделения памяти (указывающего на локальный объект), тогда ваш указатель pointer указывает на локальный объект, который будет уничтожен после возврата из функции и станет висящим указателем.

Запомните правило:
Вы не должны возвращать ссылку или указатель на переменную, локальную для функции.

1 голос
/ 31 января 2012

Вы вернули неверную переменную

возвратный указатель;

в вашем коде. Он не определен в объеме.

...