Ваша функция объявлена для возврата Composer&
, то есть ссылки на Composer
.Если ваша функция не может вернуть подходящую ссылку, и вызывающая сторона пытается использовать возвращаемое значение для чего-либо, это приведет к неопределенному поведению.
Если ваша функция законно может не найти то, что ищет, вы можетеизмените тип возвращаемого значения на указатель вместо ссылки .Это даст вам возможность вернуть NULL
:
Composer* Database::GetComposer (string in_last_name)
{
for (int i = 0; i < next_slot_; i++)
{
if (composers_[i].last_name() == in_last_name)
return &composers_[i];
}
return NULL;
}
В качестве альтернативы вы можете вызвать исключение, если ваша функция не может найти цель.