在尝试运行此代码时
#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;
}
有人可以解释一下为什么吗?
cout << a | b;
这等效于:
(cout << a) | b;
如果您阅读了该错误消息的其余部分,则会看到它告诉您no operator|(ostream&, short int)
,这是对的。
通过将括号放置在适当的位置来修正您的表情:
cout << (a | b);
(a | b
使用其自己的变量进行预存储具有类似的效果。)
是的,这在这里是不直观的,但这是因为<<
已从其“按位左移”的基本含义中“重用”,并且由于该基本含义,它最初被确定|
为优先于<<
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句