はここに私のコードません:日食cで警告「コントロールが非void型関数の終わりに到達した」++が、全く、コンパイルや実行時エラー
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];
}
}
アイデアは作曲オブジェクトとリターンの配列を反復処理することですlast_nameフィールドが "in_last_name"と一致するオブジェクトへの参照私は警告が私に言っていることを理解しています。つまり、関数が何も返さない可能性があります(たとえば、ユーザーが無効な姓を指定した場合)。私の質問は、どうすればこの問題を回避できますか? forループの後に "return 0"と "return NULL"を追加しようとしましたが、コンパイルされませんでした。このメソッドは何も見つからない場合に例外をスローする必要がありますか?
あなたは例外をスローする必要があります。 –
警告は実際にはコード内の論理エラーです。すべての警告を修正しました。(とと同じ高への警戒レベルを上げ(合理的に)可能) –
私はまだでもtry/catchブロックは、標準の例外を投げると同じ警告が表示されます。 – wbr