Как установить значения для массива объектов при чтении их из файла? - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь выполнить код, но он каждый раз вылетает. Я уже знаю, что проблема заключается в "(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;
          }           

1 Ответ

0 голосов
/ 20 февраля 2020

В вашей функции main () lb не объявлено.

Sidenote:

Это должно отображать сообщение об ошибке во время компиляции или в вашей IDE, если вы используете что-то вроде Intellisense . Если вы не знаете, что означают эти сообщения об ошибках, лучше всего их погуглить или хотя бы включить в сообщение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...