Létezik ilyen osztály "kapcsolat" c++ban?
Megoldható-e az, hogy pl van egy A osztályom, aminek része egy, vagy több B osztály objektum?
Megadom, hogy pl az egyik A objektumnak 3 B objektuma van, míg egy másik A objektumnak már 4 B objektuma van.
Konkrétan arról van szó, hogy egy konzolos rpg játékot készítek és vannak karakterek (itt most A osztály) és mindegyik karakternek vannak képességei (itt most B osztály), de nem mindegyik van ugyanannyi képessége. valamelyiknek csak 2 van, de van olyan amelyiknek 4.
Arra is kíváncsi volnék, hogy a B osztály képese módosítani A osztály adattagjait, valamilyen publikus függvényeken keresztül?
Konkrétan arra gondolok, hogy a karaktereknek lehetnek "buff"-jaik, amik növelik a karakter HP, Armor stb saját értékeit.
Lista.
Események, vagy akár publikus függvények is lehetnek, ha átadod A-t B-nek, mint host.
Igen, használhatsz mondjuk listát, ami az A osztálynak egy adattagja, és a B osztályú objektumokra mutató pointereket tárolja. (Vigyázni kell, hogy ha az A hozza létre a B objektumokat, akkor neki is kell megszüntetni őket.)
A B-objektumok módosíthatják A tulajdonságait, mondjuk csinálsz erre egy (vagy több) metódust, pl. IncHP(), IncArmor(), stb. (Másik lehetőség a "friend", de nem javaslom, itt nincs rá igazán szükség.) Amikor pedig létrehozza a B-objektumokat, egyből átadhatja nekik a saját pointerét (pl. "parent" néven), és a B objektumok így hívhatják a szülő objektumot, amihez tartoznak.
Amúgy ilyenekre kereshetsz rá, ha érteni szeretnéd az elméleti hátteret:
kompozíció, aggregáció, asszociáció.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!