我试图找出我的错误。
我正在Account
用 C++ 编写课程,其中有一些方法,如credit()
,debit()
等。
我写了一个transfer()
方法,但我得到的问题是它把“钱”从账户中扣除a1
,但没有记入a2
. 但是,如果我在 account.cpp 中的方法本身中打印它,它确实会显示正确的结果,而主要余额保持不变。
你能看出我的错误吗?与参考、指针等有关吗?
这是主要的:
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;
}
}