增加一个账户查询BalanceInquiry类,该类的声明如下: class BalanceInquiry { public: BalanceInquiry( int, BankDatabase & ); // constructor void execute(); // perform the transaction 输出账户的信息 BankDatabase & getBankDatabase() const; private: int accountNumber; // indicates account involved要查询的账号 BankDatabase &bankDatabase; // reference to the account info database 数据库引用,注意数据成员为引用时的构造函数定义方式。 }; // end class BalanceInquiry 提示:在execute函数中,首先调用getBankDatabase() 函数获得数据库对象,然后调用该数据库对象的getAvailableBalance函数得到账户余额。
时间: 2023-12-06 16:39:42 浏览: 67
好的,根据您的要求,我为您编写了一个类声明如下:
```c++
class BalanceInquiry {
public:
BalanceInquiry(int accountNum, BankDatabase& db); // constructor
void execute(); // perform the transaction and output account information
BankDatabase& getBankDatabase() const;
private:
int accountNumber;
BankDatabase& bankDatabase;
};
```
在该类中,我们有一个构造函数,它接受一个账户号码和一个BankDatabase对象的引用,以及一个执行操作的函数execute()和一个返回BankDatabase对象的函数getBankDatabase()。
在execute()函数中,我们首先调用getBankDatabase()函数获得数据库对象,然后调用该数据库对象的getAvailableBalance()函数来得到账户余额。最后,我们将余额信息输出到控制台上。
下面是完整实现:
```c++
#include <iostream>
#include "BankDatabase.h"
class BalanceInquiry {
public:
BalanceInquiry(int accountNum, BankDatabase& db)
: accountNumber(accountNum), bankDatabase(db) {} // constructor
void execute() { // perform the transaction and output account information
BankDatabase& db = getBankDatabase();
double availableBalance = db.getAvailableBalance(accountNumber);
std::cout << "Account Information:" << std::endl;
std::cout << "- Account number: " << accountNumber << std::endl;
std::cout << "- Available balance: " << availableBalance << std::endl;
}
BankDatabase& getBankDatabase() const {
return bankDatabase;
}
private:
int accountNumber;
BankDatabase& bankDatabase;
};
```
希望这可以帮助您!
阅读全文