我的代码应该像ATM机一样,它可以创建不同类型的帐户,并跟踪帐户中的所有交易和其他信息
我的问题是存储在BankAccount类中的双重余额存储在向量中以跟上所有不同的帐户,当我尝试检索余额时它给了我“-9.25596e + 061”作为余额,无论我存放或放在那里,或者即使它应该为零。我得到它的唯一一次工作就是当我平衡一个全局变量时,但为了这个程序,它几乎没用。
activeAcounts是一个向量
void BankAccount::deposit(double amount, string name)
{
balance += amount;
for (int i = 0; i < activeAccounts.size(); i++)
{
if (activeAccounts[i].getName() == name)
{
activeAccounts[i].setBalance(balance + amount);
}
}
}
询问是仅返回由其名称
指定的帐户的余额void BankAccount::inquiry(string n)
{
for (int i = 0; i < activeAccounts.size(); i++)
{
if (activeAccounts.at(i).getName() == n)
{
cout << "Balance: " << activeAccounts[i].getBalance() << endl;
}
}
}
答案 0 :(得分:0)
您很可能不会将balance
初始化为0.成员变量需要初始化,与全局变量不同。您应该在balance
构造函数中初始化BankAccount
。
此外,由于您使用的是vector
,如果您已为BankAccount
编写了复制构造函数和赋值运算符,则需要确保复制balance
,否则你的副本将有一个伪造的balance
值。
对于全局变量,当您对全局变量进行平衡时,全局变量会自动初始化为0,这可能就是为什么当它变为全局变量时没有问题。