Mam problem z zadaniem, w którym tworze pojemnik na obiekty. Mianowicie gdy umieszcze w pojemniku obiekty, przed ich wyswietleniem i usunięciem jednego obiektu z tabeli, chce je posortować według ich rosnącego wieku, ale nie wiem jak dostać się do wprowadzanego roku. Mój kod wygląda tak
#include<iostream>
using namespace std;
template <class T>
class table{
public:
T tablica[4];
int licznik=0;
T& element(int i) { return tablica[i]; }
int rozmiar() const { return licznik; }
bool wolne[4] { true, true, true, true };
void dodaj(T s1)
{
for(int i=0; i<4; i++)
{
if(wolne[i]) {
tablica[i]=s1;
licznik++;
wolne[i]=false;
break;
}
}
}
void usun_element(int index)
{
tablica[index]=T();
licznik--;
wolne[index]=true;
}
};
class Z
{
private:
string imie;
float waga;
int rok;
string id;
public:
void wyswietl()
{
cout<<imie<<" "<<waga<<" "<<" "<<rok<<" "<<id<<" ";
}
int get_rok(int rok)
{
return rok;
}
Z(string imie_="", float waga_=0, int rok_=0, string identyfikator="");
};
Z::Z(string imie_, float waga_, int rok_, string identyfikator)
{
imie=imie_;
waga=waga_;
rok=rok_;
id=identyfikator;
}
int main()
{
table<Z> pojemnik_z;
string imie, id;
float waga;
int rok, index;
for(int i=0; i<4; i++)
{
while(!(cin>>imie))
{
cin.clear();
cin.ignore(100, '\n');
}
while(!(cin>>waga))
{
cin.clear();
cin.ignore(100, '\n');
}
while(!(cin>>rok))
{
cin.clear();
cin.ignore(100, '\n');
}
while(!(cin>>id))
{
cin.clear();
cin.ignore(100, '\n');
}
pojemnik_z.dodaj(Z(imie, waga, rok, id));
}
cin>>index;
pojemnik_z.usun_element(index);
for (int i = 0; i < pojemnik_z.rozmiar(); ++i)
pojemnik_z.element(i).wyswietl();
return 0;
}