给出以下代码;
#include<iostream>
using namespace std;
int main(){
int number_1 = 3;
int result_1 = 10;
result_1 += number_1;
cout << ++result_1;
cout << result_1 += number_1;
}
这行cout << result_1 += number_1;
给我一个错误。
'operator + ='不匹配(操作数类型为'std :: basic_ostream'和'int')
另一方面,该程序cout << ++result_1;
正在运行,没有任何问题。
谁能解释这个错误是什么原因,是什么原因?
- 谁能解释这个错误是什么原因,是什么原因?
根据Operator Operator Precedence,operator<<
具有比更高的优先级operator+=
,因此您的代码等效为:
(cout << result_1) += number_1;
whilecout << result_1
将返回std::cout
(即std::ostream&
),然后operator+=
尝试被调用std::ostream
,但它不存在。这就是错误消息试图告诉您的内容。
您可以将其更改为:
cout << (result_1 += number_1) ;
或从根本上避免这种令人困惑的代码。
result_1 += number_1;
cout << result_1;
- 另一方面
cout << ++result_1;
运行没有任何问题。
Beasuse的operator++
优先级高于operator<<
。因此,它等同于cout << (++result_1);
并且会很好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句