有理数で動作するクラスを作成し、それらに対して演算子のオーバーロードを実行しようとしています。プログラムの一部である入力ストリームに問題があります。
たとえば、「12/8」の形式で入力することになっています。12を変数aに格納し、次に8を変数bに格納する必要があります。
これが私のコードです:
istream& operator>>( istream& In, Rational& Item )
{
char division_sign;
int a,b;
In >> a >> division_sign;
if (division_sign != '/' || !In.good())
{
In.setstate( ios::failbit );
}
else
{
In >> b;
if (b != 0 || !In.good())
{
return Item.numerator_ = a, Item.denominator_ = b;
}
}
}
そして、これが私が受け取るエラーです:
In function 'std::istream& operator>>(std::istream&, Rational&)':
131: error: invalid initialization of reference of type 'std::istream&' from expression of type 'int'
Line 131
return
ステートメントです