Синтаксис для доступа к const по ссылке - PullRequest
2 голосов
/ 15 апреля 2010

Прямо сейчас моя реализация возвращает вещь по значению. Сам элемент m_MyObj не является const - его значение изменяется в зависимости от того, что пользователь выбирает с помощью поля со списком. Я не гуру C ++, но я хочу сделать это правильно. Если я просто вставлю & перед GetChosenSourceSystem в обоих decl. и импл., я получаю один вид ошибки компилятора. Если я делаю одно, а не другое - другая ошибка. Если я сделаю return &m_MyObj;. Я пока не буду перечислять здесь ошибки, если только на это нет большого спроса. Я предполагаю, что опытный кодер C ++ может сказать, что здесь происходит. Я мог бы опустить константность или ссылку, но я хочу сделать ее более тесной и учиться в процессе.

// In header file
MyObj GetChosenThingy() const;

// In Implementation file.
MyObj MyDlg::GetChosenThingy() const
{
    return m_MyObj;
}

1 Ответ

8 голосов
/ 15 апреля 2010

Возвращаемый объект должен быть постоянным, поэтому вы не можете изменить его извне;

// In header file
const MyObj& GetChosenThingy() const;

// In Implementation file.
const MyObj& MyDlg::GetChosenThingy() const
{
    return m_MyObj;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...