Не удалось инициализировать конструктор

Я создаю программу, которая включает родительский класс Account и производный класс BankAccount. Первоначально я должен установить баланс на счете равным 5000. И когда совершаются определенные транзакции, этот баланс должен быть обновлен. Кроме того, всякий раз, когда программа закрывается, программа должна возвращать последний баланс. Ниже мой код. Однако я не могу правильно инициализировать конструктор и, следовательно, начальный баланс никогда не устанавливается правильно. Пожалуйста, скажите мне, что я делаю не так.

 class Account
{
public:void setCashBal(); //updates the cash balance in account whenever a transaction is made
double getCashBal(); //retrieves recent cash balanceprotected:
double cash_balance;
};void Account::setCashBal()
{

double initial_bal;ifstream read_cash_file("cash_bal_file.txt", ios_base::in);

int count = 0;

if (read_cash_file.is_open()) //check whether the file could be openend
{

while (!(read_cash_file.eof())) //reading until the end of file
{
count = count + 1;
break;
}
read_cash_file.close();

if (count == 0)//if the file is opened the first time, initial cash balance is 5000
{
initial_bal = 5000;

ofstream write_cash_file("cash_bal_file.txt", ios::out);write_cash_file << initial_bal; //writing the initial value of cash balance in cash_bal_file
write_cash_file.close();

read_cash_file.open("cash_bal_file.txt", ios_base::in);
read_cash_file >> cash_balance;
read_cash_file.close();
}else //getting the latest cash balance
{
read_cash_file.open("cash_bal_file.txt", ios::in);
read_cash_file >> cash_balance;
read_cash_file.close();
}
}

else //case when the file could not be openend
cout << endl << "Sorry, cash_bal_file could not be opened." << endl;
}

double Account::getCashBal()
{
return cash_balance;
}class BankAccount :public Account
{
public:
BankAccount();
void viewBalance();
};

BankAccount::BankAccount()

{
setCashBal();
cash_balance = getCashBal();
}void BankAccount::viewBalance()
{

double balance;
ifstream view_bal("cash_bal_file.txt", ios_base::in); //getting the latest cash_balance from cash_bal_file.
view_bal >> balance;cout << endl << "The balance in your bank account is " << balance << endl;
}int main()
{
BankAccount bnkObj;
bnkObj.viewBalance();

return 0;
}

0

Решение

class Account
{
public:
int n;

Account(): n(5000)
{}
};

Это называется «инициализация переменной-члена в конструкторе» или просто «инициализация». Если вы будете искать во вводном тексте C ++ слово «initialize», вы найдете что-то вроде этого.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]