C ++ метод, который может / не может вернуть структуру - PullRequest
8 голосов
/ 13 декабря 2010

У меня есть структура C ++ и метод:

struct Account
{
    unsigned int id;
    string username;
    ...
};


Account GetAccountById(unsigned int id) const { }

Я могу вернуть структуру Account, если учетная запись существует, но что делать, если учетной записи нет?

Я думал о том, чтобы иметь:

  • Флаг «действителен» в структуре (поэтому может быть возвращен пустой флаг, для которого установлено значение false)
  • Дополнительный указатель «действителен» (const string & id, int * is_ok), который устанавливается, если вывод действителен
  • Взамен возврата учетной записи * и возврата либо указателя на структуру, либо NULL, если она не существует?

Есть ли лучший способ сделать это?

Ответы [ 11 ]

0 голосов
/ 13 декабря 2010

Другой способ, кроме возврата ссылки, - вернуть указатель.Если учетная запись существует, верните ее указатель.В противном случае верните NULL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...