0

エラー入力処理が与えられたクラスがあります。これは、独自の「抽出」演算子が与えられたクラスであり、与えられたコードを実装するように求められました。私が抱えている問題は、使用する必要があるコードがこれに似ていることです。

try {
    while (some condition)
    {....implemented code....}
} catch (runtime_error& e) {
    cerr << e.what() << endl;
    return 1;
}

私がこれをコンパイルしている問題は、「リターン1」の値が気に入らないようで、次のエラーが発生することです。

invalid initialization of non-const reference of type ‘std::istream& {aka std::basic_istream<char>&}’ from an rvalue of type ‘int’

戻り値を削除すると、まっすぐにコンパイルされますが、try ステートメントを実行しようとしている領域に到達すると、プログラムは実行に失敗します。前述のように、私が持っているコードは、実装することになっているサンプルコードであるため、箱から出してすぐに機能すると想定しました。while ループの条件は

while (!std::cin.fail())

なんらかの理由で失敗するまで入力を取得し続けたいと思ったので。この場合の戻り値が問題を引き起こすのはなぜですか?

4

1 に答える 1

1

サイキック デバッグは次のことを示します。

囲んでいる関数には、フォームの署名があります

std::istream& func_name(/*parameter list goes here*/)

したがって、コンパイルエラー

于 2013-04-18T00:12:38.887 に答える