0

>> 演算子をオーバーロードしているときにこのエラーが発生しましたが、その理由がわかりません。

istream& operator>>(istream& stream, unsigned int in)
{
    stream >> in;
    //manyoperators
    if(in>10)
       in = -1;
    return stream;
}

エラーのあるコードの一部:

unsigned int tmm;
    cin >> tmm;

なんで?>>の他のオーバーロードはありません。それは何ですか?

4

2 に答える 2

2

>>組み込みのデータ型ではなく、カスタム クラスに対してのみ関数 (あなたの場合は operator ) をオーバーロードできます。
C++ 標準ライブラリ自体は、組み込みデータ型のオーバーロードを提供します。

于 2012-12-08T13:47:21.323 に答える
0

std::istreamoperator>>(unsigned int&)メンバーとして持っています。コンパイラは、メンバー関数 ( で定義<iostream>) を呼び出すか、作成したフリー関数を呼び出すかを選択できません。

于 2012-12-08T14:06:12.777 に答える