Ссылка на мультикарту

Можно ли вернуть ссылку на объект внутри мультикарты? Вот что я пытаюсь:

return &this->noteList.find(key)->second;

Но я получаю Non-const lvalue reference to type 'Note' cannot bind to a temporary of type 'Note *'поэтому мне было интересно, если это вообще возможно, и если да, то как? notelist это мультикарта и имеет Noteобъекты внутри него.

0

Решение

this->noteList.find(key)->second уже дает вам ссылку на объект внутри мультикарты (если this->noteList это мультикарта).

Префикс этого выражения с амперсандом (&), вы получаете указатель на такой объект (если этот оператор не перегружен)

0

Другие решения

Тогда просто вернись second без амперсанда (&) как уже отмечали другие.

Если noteList или ваш метод const, вы также должны изменить свой тип возврата на const, например:

const Note &getRef(Note note) const;

Не по теме: Обычно вам также следует изменить параметр на const Note &noteполучая:

const Note &getRef(const Note &note) const;

или же

Note &getRef(const Note &note);
0

По вопросам рекламы [email protected]