Ich habe ein Problem mit einem Rückgabewert mit einem + = Operator.Operator Rückgabewert Problem
das folgende ist der spezifische Code, der verwandt wird. Wenn mehr Code gezeigt werden muss, werde ich es schaffen:
double operator+=(double b, const Account& c)
{
return b += c.getBalance();
}
, wo er in der Haupt implementiert:
for(int i = 0; i < NUMBER_OF_ACCOUNTS; i++)
{
std::cout << i+1 << "- " << (balance += *AC[i]) << std::endl;
}
std::cout << "Total Balance: " << balance << std::endl;
Ausgang Ich erhalte:
1- 10302.98
2- 10302.98
3- 201.00
Total Balance: 0.00
Ausgang ich versuche zu erhalten:
1- 10302.98
2- 20605.96
3- 20806.96
Total Balance: 20806.96
Verwenden Sie keine * Zeichen, um den Code hervorzuheben. Das macht den Code verwirrender. Bitte posten Sie auch eine [mcve] – PaulMcKenzie
Warum geben Sie 'b + = c.getBalance();'? Der Wert von "b" ändert sich nur in "operator + =' function scope "(da" b "als Wert und nicht als Referenz übergeben wird). Ich denke, was Sie wirklich tun wollen, ist 'return b + c.getBalance();' oder vielleicht übergeben Sie 'b' als Referenz' Doppeloperator + = (double & b, const Account & c); 'und dann inkrementieren vor der Rückgabe von' b + = c.getBalance(); return b'. – Jezor