我有两个整数并尝试将它们传递给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;'来说是可以理解的操作
为什么这个错误会上升?
答案 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;