设计一个BankAccount(银行账户)类,具有私有成员变量accountNumber(账号)和 balance(余额),以及公有成员函数deposit()(存款)和withdraw()(取款)。使用友元函数 transferFunds()(转账)实现两个账户之间的资金转移。
时间: 2024-01-10 21:03:17 浏览: 28
好的,我来为您设计一个BankAccount类,代码如下:
```cpp
#include<iostream>
using namespace std;
class BankAccount{
private:
string accountNumber;
double balance;
public:
BankAccount(string accNum, double bal):accountNumber(accNum), balance(bal){}
void deposit(double amount){
balance += amount;
cout << "已成功存入" << amount << "元,当前余额为" << balance << "元" << endl;
}
void withdraw(double amount){
if(amount > balance){
cout << "余额不足,取款失败!" << endl;
}
else{
balance -= amount;
cout << "已成功取出" << amount << "元,当前余额为" << balance << "元" << endl;
}
}
friend void transferFunds(BankAccount& account1, BankAccount& account2, double amount){
if(amount > account1.balance){
cout << "账户1余额不足,转账失败!" << endl;
}
else{
account1.balance -= amount;
account2.balance += amount;
cout << "已成功从账户1转账" << amount << "元到账户2,账户1当前余额为" << account1.balance << "元,账户2当前余额为" << account2.balance << "元" << endl;
}
}
};
int main(){
BankAccount account1("123456", 1000.00);
BankAccount account2("654321", 2000.00);
account1.deposit(500.00);
account1.withdraw(200.00);
account2.deposit(1000.00);
transferFunds(account1, account2, 300.00);
return 0;
}
```
在这个类中,我们定义了两个私有成员变量accountNumber和balance,分别表示账号和余额。我们还定义了两个公有成员函数deposit()和withdraw(),分别用于存款和取款。在deposit()函数中,我们将存款金额加到余额中,并输出当前余额;在withdraw()函数中,如果要取出的金额大于余额,就输出“余额不足,取款失败!”;否则将取款金额从余额中减去,并输出当前余额。
我们还定义了一个友元函数transferFunds(),用于实现两个账户之间的资金转移。在这个函数中,我们首先判断账户1的余额是否足够,如果不够就输出“账户1余额不足,转账失败!”;否则将转移金额从账户1的余额中减去,加到账户2的余额中,并输出当前余额。
在主函数中,我们创建了两个BankAccount对象,并进行了几次存款和取款操作,最后使用transferFunds()函数将300元从账户1转移到账户2中。