与cout运算符一起使用逻辑OR

时间:2019-07-29 09:11:56

标签: c++ operator-precedence

为什么bitorcout运算符一起使用时不起作用

这有效

int a=5,b = 6,d = a bitor b;
cout << d << endl;

这引发错误

int a=5,b=6;
cout << a bitor b << endl;

错误消息:

invalid operands of types 'int' and '<unresolved overloaded function type>' to binary 'operator<<'
  cout << a bitor b << endl;

1 个答案:

答案 0 :(得分:5)

根据Operator Precedenceoperator<<的优先级高于operator bitor。然后cout << a bitor b << endl;将被解释为

(cout << a) bitor (b << endl);

b << endl无效。

您可以添加括号以指定正确的优先级,例如

cout << (a bitor b ) << endl;