- A paraméterként átadott tárolótól elvárjuk, hogy megvalósítja az alábbi metódusokat illetve típusokat:
- A paraméterként átadott tárolótól elvárjuk, hogy valósítsa meg az alábbi metódusokat illetve típusokat:
-*value\_type* - a tárolt adat típusa.
-*value\_type* - a tárolt adat típusa.
-*iterator* - iterátor.
-*iterator* - iterátor.
-*const\_iterator* - konstans iterátor.
-*const\_iterator* - konstans iterátor.
...
@@ -27,7 +27,7 @@ A Sablonparaméterként megadható sorozattárolónak az alábbi minimumkövetel
...
@@ -27,7 +27,7 @@ A Sablonparaméterként megadható sorozattárolónak az alábbi minimumkövetel
-*push\_back()* - betesz egy új adatot a tárolóba - pontosabban az adat egy másolatát - a tárolt adatok után. Amennyiben helyhiány miatt ez nem sikerül, *std::bad_alloc* kivételt dob.
-*push\_back()* - betesz egy új adatot a tárolóba - pontosabban az adat egy másolatát - a tárolt adatok után. Amennyiben helyhiány miatt ez nem sikerül, *std::bad_alloc* kivételt dob.
-*clear()* - törli a tárolót, azaz eldobja a tárolt adatokat, a tárolt darabszámot 0-ra állítja.
-*clear()* - törli a tárolót, azaz eldobja a tárolt adatokat, a tárolt darabszámot 0-ra állítja.
A fentieket felhasználva **valósítsa** meg (tegye elérhetővé) a *ClonableHeteroStore* osztály az alábbi publikus metódusokat illetve típusokat:
A fenti követelmények meglétét feltételezve **tervezze** meg a *ClonableHeteroStore* osztályt úgy, hogy az rendelkezzen az alábbi publikus metódusokkal, illetve illetve típusokkal:
-**const_iterator** - konstans iterátor.
-**const_iterator** - konstans iterátor.
-**begin()** - visszaad egy iterátort (*const\_iterator*) a belső tároló első elemére.
-**begin()** - visszaad egy iterátort (*const\_iterator*) a belső tároló első elemére.
...
@@ -48,7 +48,7 @@ Támogassa a többszörös értékadást! **Tételezze fel**, hogy a tárolóban
...
@@ -48,7 +48,7 @@ Támogassa a többszörös értékadást! **Tételezze fel**, hogy a tárolóban
3. Tesztelje a megadott tesztprogrammal az új osztályt!
3. Tesztelje a megadott tesztprogrammal az új osztályt!
4. Elemezze a **ClonableTestClass**, a **ClonableTestClass1**, valamint a **ClonableTestClass2** osztályok megvalósítását a *clonable_testclass.h* állományban! A megvalósítás többszörös öröklést és virtuális alaposztályt használ. Értse meg, hogy miért van erre szükség!
4. Elemezze a **ClonableTestClass**, a **ClonableTestClass1**, valamint a **ClonableTestClass2** osztályok megvalósítását a *clonable_testclass.h* állományban! A megvalósítás többszörös öröklést és virtuális alaposztályt használ. Értse meg, hogy miért van erre szükség!
5. A fentiek alapján hozzon létre klónozható baktériumokat, melyek kompatibilisek a **Bacterium**, valamint **Clonable** osztályokkal! Az osztályokat a *clonable_bacterium.h* fájlban implementálja!
5. A fentiek alapján hozzon létre klónozható baktériumokat, melyek kompatibilisek a **Bacterium**, valamint **Clonable** osztályokkal! Az osztályokat a *clonable_bacterium.h* fájlban implementálja!
6.Definiálja a **BACI\_IS\_VAN** makrót, fordítson és ismét teszteljen!
6.Projekt szinten definiálja a **BACI\_IS\_VAN** makrót, fordítson és ismét teszteljen!
4. Amennyiben a tesztek jól futnak, töltse fel a *JPorta* feladatbeadó rendszerbe a **clonable\_bacterium.h** és **clonable\_hetero\_store.hpp** fájlokat!
4. Amennyiben a tesztek jól futnak, töltse fel a *JPorta* feladatbeadó rendszerbe a **clonable\_bacterium.h** és **clonable\_hetero\_store.hpp** fájlokat!