0

我有两个整数并试图将它们传递给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,这解释了错误报告: & 运算符不能与流一起使用(返回的对象 fromcout << a)和 int.

于 2012-12-04T14:18:27.963 回答
1

你可以这样做::) 还是我误解了?(一种)

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