Kihagyás

Órai feladat

10. Gyakorlat

motto


Nulladik feladat!

A feladatok megoldása előtt töltsük le a kiindulási kódunkat, ezt kiegészítve fogunk dolgozni!

Kiindulási kód

kiindulo.cpp


  1. Egészítsük ki a Tehen osztályt egy destruktorral. A destruktor írja ki a standard outputra, hogy:
    • "[nev] megsemmisul", ahol a [nev] helyére illesszük be a megsemmisülő tehén nevét!
  2. Példányosítsuk le a mainben a tehenet! A tehén neve legyen "Main"!
    • Hozzunk létre a "Main" után egy "Main2" nevű tehenet is! Milyen sorrendben fognak létrejönni és megsemmisülni?
  3. Hozzunk létre egy globális tehén objektumot is! Neve legyen "Global"! Mikor jön létre és mikor szűnik meg ez az objektum?
  4. Hozzunk létre a mainben egy dinamikusan módon lefoglalt tehenet! Neve legyen: "Dinamikus"!
    • Mit tapasztalunk, mi történik, ha expliciten nem hívjuk meg a destruktort?
  5. Minden tehénnek lehet egy darab kolompja (a Kolomp osztály reprezentálja). Adjunk egy Kolomp pointer adattagot a Tehen osztályhoz!
    • Kezdetben egy tehén sem rendelkezik kolomppal. Legyen nullptr-re inicializálva a kolomp pointer!
    • Hozzunk létre gettert az adattaghoz!
    • Hozzunk létre egy settert az adattaghoz, amely egy Kolomp pointert vár paraméterként!
    • Fel kell-e szabadítani a destruktorban az így letárolt kolompot?
  6. Módosítsuk a Tehen hangot ad metódusát! Ha van neki kolompja, akkor fűzzük hozzá a kolomp hangotAd metódusa által visszaadott értéket a "Muu" sztringhez!
  7. Írjunk egy kolompBeallitas(Tehen& t) nevű globális függvényt, amely egy tehén referenciát vár! Ennek a tehénnek fogunk beállítani kolompot! Olvassunk be egy egész számot! Ez lesz a kolompolások száma. Példányosítsunk le a kolompBeallitasban egy, a beolvasott számnak megfelelő kolompot és teszteljük a tehenet a hangotAd segítségével! Ha a felhasználó 0-át ad meg, akkor ne állítsunk be kolompot!
    • A mainben is teszteljük a kolomppal felturbózott tehenet a hangotAd segítségével!
  8. Vizsgáljuk meg a 7. feladatra adott megoldásunkat! Helyes-e memóriakezelés szempontjából? Szükség esetén javítsuk ki olyan módon, hogy a kolomp objektum élettartama csakis az őt birtokló tehéntől függjön!
  9. Írjunk egy globális metódust, ami először referenciaként vár egy tehenet és meghívja a hangotAd metódusát! Próbáljuk ki a mainből! Módosítsunk a metóduson: várja érték szerint a paraméterét! Így is futtassuk le a kódot!
  10. Írjuk felül az egyik tehenet a mainben azzal, amelyiknek kolompot állítottunk be. Hívd meg a felülírt tehén hangotAd metódusát is. Mit tapasztalunk?
  11. Javítsuk ki a 9-es és 10-es feladatokban tapasztalt jelenségeket! Írjuk meg a Tehen osztály copy konstruktorát és értékadás operátorát! Ezekbe is tegyünk kiíratást!
    • Kell-e írnunk copy konstruktort és az értékadás operátort a kolomp osztályban?

Elakadtál, nem tudtad követni az órát?! Vagy csak átismételnéd? Egy lehetséges megoldását a feladatoknak megmutatjuk!

Órai feladat megoldása

megoldas.cpp



Utolsó frissítés: 2024-12-09
Létrehozva: 2024-08-01