C++ 为什么可以';t位运算符是否可以直接在流中使用?

C++ 为什么可以';t位运算符是否可以直接在流中使用?,c++,operator-overloading,operators,C++,Operator Overloading,Operators,在尝试运行此代码时 #include <iostream> using namespace std; int main() { short int a = 0xFFFD, b = 10; cout << a | b; return 0; } #包括 使用名称空间std; int main(){ 短整数a=0xFFFD,b=10; cout问题在于,与移位运算符相比,位运算符的优先级较低 因此,这项声明 cout << a | b; ( co

在尝试运行此代码时

#include <iostream>
using namespace std;
int main() {
  short int a = 0xFFFD, b = 10;
  cout <<  a | b;
  return 0;
}
#包括
使用名称空间std;
int main(){
短整数a=0xFFFD,b=10;

cout问题在于,与移位运算符相比,位运算符的优先级较低

因此,这项声明

cout <<  a | b;
( cout <<  a ) | b;

cout问题在于,与移位运算符相比,位运算符的优先级较低

因此,这项声明

cout <<  a | b;
( cout <<  a ) | b;
cout
(将
a | b
预存储在它自己的变量中具有类似的效果。)

是的,这在这里是不直观的,但那是因为

(将
a | b
预存储在它自己的变量中具有类似的效果。)


是的,这在这里是不直观的,但那是因为
这是因为ooperator优先级。让
cout@igortandtnik答案进入答案部分是因为ooperator优先级。让
cout@igortandtnik答案进入答案部分
(cout << a) | b;
cout << (a | b);