+ =演算子の戻り値に問題があります。演算子の戻り値の問題
以下は、関連する特定のコードです。より多くのコードを表示する必要がある場合、私はそれを提供します。それがメインで実装されて
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();'または 'double operator + =(double&b、const Account & c);')として 'b'を渡してから、' b + = c.getBalance(); return b' – Jezor