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];
}
}
Pomysł jest iteracyjne nad tablicę obiektów kompozytor i powrotu odniesienie do obiektu, którego nazwa_ostatniego pola pasuje do "in_last_name". Rozumiem, co mówi mi ostrzeżenie, a mianowicie, że funkcja nie zwróci niczego (jeśli, powiedzmy, użytkownik poda niepoprawne nazwisko). Moje pytanie brzmi: jak mogę tego uniknąć? Próbowałem dodać "return 0" i "return NULL" po pętli for i nie skompilowałoby się. Czy ta metoda powinna generować wyjątek, jeśli nic nie znajdzie?
Powinieneś rzucić wyjątek. –
Ostrzeżenia to naprawdę logiczne błędy w kodzie. Napraw wszystkie ostrzeżenia (i zwiększ poziom ostrzeżenia na tak wysoki, jak to możliwe) –
Ciągle otrzymuję to samo ostrzeżenie, nawet jeśli blok try/catch rzuca standardowy wyjątek. – wbr