Я пытаюсь выполнить код, но он каждый раз вылетает. Я уже знаю, что проблема заключается в "(arr [i]) -> set (name, value);" строка в функции readFile, но я не очень понимаю, почему или как это исправить. Мы должны вернуть массив, поэтому я не могу использовать вектор для его решения.
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;
class Bank_Account {
private:
string name;
int balance;
public:
Bank_Account(){
name="";
balance=0;
}
Bank_Account(string n, int b){
name=n;
balance=b;}
void set(string n, int b){
name=n;
balance=b;}
string get_name(){return name;}
int get_balance(){return balance;}
void transaction(int value){
if (value>balance)
cout<<"The value is bigger than your balance."<<endl;
else balance=balance-value;
}
void deposit(int value){
balance=balance + value;}
};
Bank_Account * readFile (string FileName){
Bank_Account *arr[10];
ifstream in;
int i=0;
in.open(FileName.c_str());
if (in.is_open()){
if (!in.eof()){
for (int i=0;i<10;i++){
string name; int balance;
(arr[i])-> set(name,balance);}
}
}
else {
cout<<"Couldn't open the required file."<<endl;}
return arr[10];
}
int main(){
Bank_Account *T;
T=readFile("bankacc.txt");
for (int i=0;i<10;i++){
cout<<(T+i)->get_name()<<" "<<(T+i)->get_balance()<<endl;
}
Bank_Account ba("Anne",350000);
lb.transaction(400000);
lb.transaction(150000);
lb.deposit(50000);
return 0;
}