Witam. Pracuję nad aplikacją która będzie przechowywać informację na temat Banku i jego pracowników. Zdecydowałem się na użycie kontenera vector.
vector <Bank>BankList utworzyłem w mainie i dodaje do niego kolejne elementy funkcją zaprzyjaźnioną z klasą Bank void AddBankList(Bank n, vector<Bank>&BankList)
Każdy obiekt klasy bank posiada również vector<Employee>EmployeeList w którym przechowuje informację o swoich pracownikach.
Pracownikow to tego vectora dodaję funkcją zaprzyjaźnioną z klasami Bank i Employee void AddEmployee_Bank(Employee &n, Bank &z).
problem pojawia się gdy wywołuję funkcję void show_employee(vector<Bank>BankList, int j) która ma za zadanie wyswietlac informacje o wszystkich pracownikach danego banku.
class Bank{
string name;
int bank_id;
vector<Employee>EmployeeList;
public:
friend void AddEmployee_Bank(Employee &n, Bank &z);
friend void AddBankList(Bank n, vector<Bank>&BankList);
friend void show_employee(vector<Bank>BankList, int j); // j - id banku którego pracowników chcemy
};
class Employee{
string name;
int id;
public:
friend void AddEmployee_Bank(Employee &n, Bank &z);
friend void show_employee(vector<Bank>BankList, int j);
};
void AddEmployee_Bank(Employee &n, Bank &z)
{
cout<<z.EmployeeList.size()<<endl;
if(z.EmployeeList.size()==0)
{
z.BankList.push_back(n);
cout<<z.BankList.size()<<endl;
}
else
{
int i=0;
while(n.id != z.BankList[i].id && i < z.BankList.size())
{
i++;
}
if(n.id == z.BankList[i].id )
{
cout<<"Cant add this employee. Same Id"<<endl;
}
else
{
z.BankList.push_back(n);
cout<<z.BankList.size()<<endl;
}
}
}
void show_employee(vector<Bank>BankList, int j) // funkcja przy wywolaniu której wyrzuca blad taki jak po wyjściu w obszar niezarezerwowanej pamięci
{
cout<<"Employees of Bank id: "<<j<<endl;
for(int i=0; i < BankList.size(); i++)
{
if(BankList[i].bank_id == j)
{
for(int z=0; z < (BankList[i].EmployeeList.size())-1 ; z++)
{
cout<<"Name of employee"<<BankList[i].EmployeeList[z].name<<endl;
cout<<"ID of employee"<<BankList[i].EmployeeList[z].id<<endl;
cout<<endl;
}
}
}
}