多个带括号的复合赋值语句C++; 我试图通过编码一个简单的类来学习C++,输入两个双份,一个实部和虚部,并对它们进行运算。我有一个特别的部分 cout << "((c1 += c2) += c3) = " << ((c1 += c2) += c3) << endl; cout << "c1 = " << c1 << endl; cout

多个带括号的复合赋值语句C++; 我试图通过编码一个简单的类来学习C++,输入两个双份,一个实部和虚部,并对它们进行运算。我有一个特别的部分 cout << "((c1 += c2) += c3) = " << ((c1 += c2) += c3) << endl; cout << "c1 = " << c1 << endl; cout,c++,operator-overloading,complex-numbers,C++,Operator Overloading,Complex Numbers,(c1+=c2)将返回c1并将c2添加到c1中。然后,由于返回了c1,语句变为c1+=c3。那么,c3被加到c1上。根据此逻辑,c1应等于c1、c2和c3的初始值之和。(c1+=c2)将返回c1并将c2添加到c1中。然后,由于返回了c1,语句变为c1+=c3。那么,c3被加到c1上。根据该逻辑,c1应等于c1、c2和c3的初始值之和。首先((c1+=c2)+=c3)在该代码中,首先将执行所有内括号,即(c1+=c2这将给出c1和c2之和,然后将其与c3相加(c1+c2)+=c3将c3添加到该和中

(c1+=c2)
将返回c1并将c2添加到c1中。然后,由于返回了c1,语句变为
c1+=c3
。那么,c3被加到c1上。根据此逻辑,c1应等于c1、c2和c3的初始值之和。

(c1+=c2)
将返回c1并将c2添加到c1中。然后,由于返回了c1,语句变为
c1+=c3
。那么,c3被加到c1上。根据该逻辑,c1应等于c1、c2和c3的初始值之和。

首先
((c1+=c2)+=c3)
在该代码中,首先将执行所有内括号,即
(c1+=c2
这将给出c1和c2之和,然后将其与c3相加
(c1+c2)+=c3
将c3添加到该和中。 因为c3加在c1和c2的和上,而不是加在变量c3上。因此c1只有c1和c2的和。 如果您希望c1也具有c1、c2和c3之和,请尝试此
((c1=(c1+=c2))+=c3)

希望你能得到你的答案。

首先
((c1+=c2)+=c3)
在此代码中,首先将执行内部括号,即
(c1+=c2
这将给出c1和c2之和,然后将其与c3相加
(c1+c2)+=c3
将c3添加到总和中。 因为c3加在c1和c2的和上,而不是加在变量c3上。因此c1只有c1和c2的和。 如果您希望c1也具有c1、c2和c3之和,请尝试此
((c1=(c1+=c2))+=c3)


希望你能得到答案。

你的陈述说:
c1+=c2
——你期望c1的值是多少?只是想澄清一下,
a+=b
的意思是
a=a+b
我期望c1的值是c1、c2和c3的总和。我在两个编译器中都使用了MSVC2015和GCC 8.2.1:c1用你的代码更新为c1、c2和c3的总和声明说:
c1+=c2
——你期望c1的值是多少?只是澄清一下,
a+=b
的意思是
a=a+b
我期望c1的值是c1、c2和c3的总和。我在两个编译器中都使用了MSVC2015和GCC 8.2.1:用你的代码将c1更新为c1、c2和c3的总和