У меня проблема с возвращаемым значением с помощью оператора + =.проблема возврата оператора
следующий связанный код. Если больше коды нужно показать, я представлю его:
double operator+=(double b, const Account& c)
{
return b += c.getBalance();
}
, где она реализуется в основном:
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;
выхода я получаю:
1- 10302.98
2- 10302.98
3- 201.00
Total Balance: 0.00
выхода Я пытаюсь для получения:
1- 10302.98
2- 20605.96
3- 20806.96
Total Balance: 20806.96
Не используйте символы '*' для выделения кода. Это делает код более запутанным. Также, пожалуйста, напишите сообщение [mcve] – PaulMcKenzie
Почему вы возвращаете 'b + = c.getBalance();'? Значение 'b' будет изменяться только в области' operator + = 'функции (поскольку' b' передается по значению, а не по ссылке). Я думаю, что то, что вы действительно хотите сделать, это 'return b + c.getBalance();' или, возможно, передать 'b' в качестве ссылки' double operator + = (double & b, const Account & c); ', а затем увеличить его перед возвратом' b + = c.getBalance(); return b'. – Jezor