0

2 つの整数があり、それらを に渡そうとしていcoutます。

int a =1;
int b= 3;
cout<<a&b;

コンパイラは次のように伝えます。

Error   2   error C2676: binary '&' : 'std::basic_ostream<_Elem,_Traits>' does not define this operator or a conversion to a type acceptable to the predefined operator

しかし、a&b は「<<」演算子で理解できる int を返します。

なぜこのエラーが発生するのですか?

4

3 に答える 3

1

私が間違っていなければ、これは優先順位の問題です。使用してみてcout << (a&b);、少しうまくいかないかどうかを確認してください。

于 2012-12-04T14:18:07.853 に答える
1

演算子の優先順位により、括弧を使用する必要があります。

cout << (a & b)

この<<演算子は よりも厳密にバインド&されるため、括弧を省略すると、コンパイラはそれを として認識(cout << a) & bし、エラー レポートが説明されます。 & 演算子は、ストリーム (返されたオブジェクトcout << a)および int.

于 2012-12-04T14:18:27.963 に答える
1

あなたはこのようにすることができます::)または私は誤解しましたか? (a)

int a =1;
int b= 3;
cout<<a << "&" << b;
于 2012-12-04T14:18:49.273 に答える