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. Cseréljük le a kiindulási Tehen osztályban a nyers/raw Kolomp pointert shared_ptr<Kolomp>-ra!
    • Ne használjunk sehol raw pointert!
    • Töröljük ki a feleslegessé vált kódrészeket!
  2. A farmerek kidolgoztak egy olyan kolompot, aminek változtatható Csengohangja van. Ennek az implementációja látható az OkosKolomp osztályban.
    • Mutathat-e a Tehen osztály shared_ptr<Kolomp> típusú adattagja OkosKolomp objektumra? Ha igen, vajon OkosKolompként fog viselkedni, ha meghívjuk a hangotAd metódusát?
    • Próbáljuk ki a min-ben, hogy különféle kolompokat adunk át!
  3. Kérjük le az előbbi feladatban beállított OkosKolompot a tehéntől és állítsuk azt be egy másik tehénnek is! Írassuk ki a shared_ptr use_count értékét a beállítás előtt és után is!
    • Mi okozhatja, ha nem a várt számokat kapjuk? (1 és 2)
    • Vizsgáljuk meg a tehén getKolomp metódusának visszatérési típusát!
  4. Változtassuk meg az egyik tehén kolompjának a kolompolás számát!
    • Mit tapasztalunk a másik tehén kolompolásakor?
    • Mi a probléma forrása? (shared_ptr)
  5. Oldjuk meg, hogy smart pointer használatával minden tehénnek egyedi kolompja legyen!
    • unique_ptr használatával oldjuk meg!
  6. Nézzük meg, hogy a setKolomp függvény miért nem fordul!
    • Miért lehet ez? Mi lehet a megoldás?
  7. Próbáljuk ki, hogy egy tehenet másolunk!
    • Mi lehet az oka annak, ami történik?
  8. Valósítsuk meg, hogy deep-copy történjen a clone anyag segítségével!
    • Csakis unique pointert használjunk!

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: 2025-11-27
Létrehozva: 2025-11-27