【发布时间】:2016-11-12 14:05:52
【问题描述】:
在尝试运行此代码时
#include <iostream>
using namespace std;
int main() {
short int a = 0xFFFD, b = 10;
cout << a | b;
return 0;
}
我遇到了一个错误
错误:'operator|' 不匹配
但是,将结果存储在另一个变量中似乎可以解决问题:
#include <iostream>
using namespace std;
int main() {
short int a = 0xFFFD, b = 10, c;
c = a | b;
cout << c;
return 0;
}
谁能解释一下为什么?
【问题讨论】:
-
那是因为运算符优先级。
-
Make it
cout << (a | b);你不需要额外的变量,只需要一对合适的括号。 -
@IgorTandetnik 答案进入答案部分
标签: c++ operator-overloading operators