无法通过操作'&'结果是cout

时间:2012-12-04 14:15:48

标签: visual-c++

我有两个整数并尝试将它们传递给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&amp; b返回的int对于'&lt;&lt;'来说是可以理解的操作

为什么这个错误会上升?

3 个答案:

答案 0 :(得分:1)

如果我没弄错的话,这是一个优先问题。尝试使用cout << (a&b);,看看它是否有效。

答案 1 :(得分:1)

由于运算符优先级,您需要使用括号:

cout << (a & b)

<<运算符比&绑定得更紧密,因此省略括号会使得(cout << a) & b运算符更加紧密 编译器将其作为cout << a),它解释了错误报告:&amp; operator不能与流一起使用(来自{{1}}的返回对象和int。

答案 2 :(得分:1)

你可以这样做::)或者我误解了吗? (a)中

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