私は自分の間違いを理解しようとしています。
私はC++でクラスに取り組んでおり
、、などのAccount
メソッドがいくつかあります。メソッドを作成しましたが、「お金」を考慮に入れていないのにクレジットが表示されないという問題が発生します。ただし、account.cppのメソッド自体に出力すると、正しい結果が表示されますが、メインではバランスは同じままです。credit()
debit()
transfer()
a1
a2
私の間違いが見えますか?参照、ポインタなどと何か関係がありますか?
ここにメインがあります:
a1.println();
a2.println();
cout<< "Valid parameter " << endl;
cout<< a1.transfer(a2, 13) << endl;
a1.println();
a2.println();
印刷内容は次のとおりです。
(Account(65,140))
(Account(130,100))
Valid parameter
1
(Account(65,127))
(Account(130,100))
メソッドの定義は次のとおりです。
// withdraw money from account
bool Account::debit(int amount){
if (amount>=0 && balance>=amount) {
balance=balance-amount; // new balance
return true;
} else {
return false;
}
}
// deposit money
bool Account::credit(int amount){
if (amount>=0) {
balance=balance+amount; // new balance
return true;
} else {
return false;
}
}
bool Account::transfer(Account other, int amount){
if (amount>=0 && balance>=amount) {
debit(amount);
other.credit(amount);
//other.println();// prints corect amount
return true;
} else {
return false;
}
}