对 cout 运算符使用逻辑或

Using logical OR with cout operator

为什么 bitor 在与 cout 运算符一起使用时不起作用

这个有效

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;

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

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

b << endl无效。

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

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