Osztályok beillesztése más osztály adattagjaiként? C++
Az adott adattag típusaként az osztályt kell megadni.
Például, ha van A osztályod, és fel akarod használni B adattagjaként, akkor meg kell adnod egy A típusú attributumot:
private:
___int n;
___float alfa;
___A a;
___char név[50];
...
Üdv.
Példa: Tegyük fel, hogy nem használhatsz STL-t ( jó, a mai világban már hülye lenne, aki nem használja, de most maradjunk ennél ).
Csinálsz egy Láncolt listát ( ez egy mutatókkal összekapcsolt lánc, next(következő), previous(előző), current(jelenlegi), stb adattagokkal, ezekkel az elsőtől, az utolsóig tudsz lépkedni. ), amiben dolgokat tárolsz. De nem akármilyen dolgokat! Hanem egy másik osztály példányait.
Ilyenkor ezt úgy kivitelezed, hogy a lista úgynevezett "csomópontjaiban" (Node) felveszel egy-egy <osztálynév> típusú objektumot, és ennek az adattagjait el tudod érni, értéket tudsz adni nekik, lekérni, stb.
Ennél sajnos nem tudok érthetőbb példával szolgálni. :)
Az eddigi példák nagyon jól érthetőek voltak segítettek is azért de sajnos még mindig nem értem eléggé.
És a könyvekben sincs érthetőbben sajnos.
Léci segítsetek jó.
Szánja rá magát valaki arra,hogy írjon egy másik magyarázatot léci.
Na akkor ha vegyük ezt a példát:
class CAT
{
public:
private:
};
//////////////////
class BEALLIT
{
public:
private:
};
Ez az egész amit most írtam az nem túl jó csak azt szeretném ha valaki egy ehhez hasonló példával értettné velem meg.
Ha létrehozok egy CAT osztályt és egy BEALLIT osztályt akkor az,hogyan csináljam meg,hogy a BEALLIT osztály beállítsa a CAT adattagjait.
Tudom nem túl kicsi az amit kérek de már ezzel szenvedek 3 hónapja,hogy ezt megértsem és nemsikerül :(
Segítsetek léci.
Először is általános/ nyelvfüggetlen ismeretetek kellenének az objektum orientálisról. Az OOP mint elméleti modell, a c++ egy gyakorlati alkalmazása ennek a modellnek. Alapvető fogalmakkal kéne tisztában lenni.
Egyáltalán mi az osztály? Mi az objektum? Meg is kérdezem hogy egyáltalán mik ezek? Van e különbség a 2 között? Saját szavaiddal. Ilyen fogalmak, hogy aggregáció,kompozíció,aggregáció, asszociáció. Melyik micsoda?
Az osztály nem más mint egy új típus definíciója.
Az objektum pedig ennek a típusnak az egyik példánya.
"Ha létrehozok egy CAT osztályt és egy BEALLIT osztályt akkor az,hogyan csináljam meg,hogy a BEALLIT osztály beállítsa a CAT adattagjait."
Azt írtad hogy "eddigi példák nagyon jól érthetőek voltak segítettek is ...". Az OOP elméleti modellt értem a c++ értem,de azt hogy most minek a BEALLIT osztály, vagy mit nem értesz rajta, azt én nem értem.
Azt írta valaki, hogy "kezd újra az OOP-t", azt írtad hogy "már ezzel szenvedek 3 hónapja" ... írtam pár OOP-ben használt fogalmat és azt sem tudod mik azok, (az osztály és objektumon kívül)
Ne hidd azt hogy ez most letolás volt, mindössze a tényeket írtam le.
Itt le van írva az aggregáció: [link]
A legalján a Forrás-nál hasznos linkek, pl Programozás 1. segédanyag, nem véletlen nem c++ hanem java, sokkal könnyebb megérteni java-ba az OOP-t.
Aggregáció: az egyik objektum tartalmazza a másikat.
pl:
class Macska{
...
Fej fej;
Torzs torzs;
Lab lab[4];
...
}
A Fej a Torzs a Lab a Fej is osztályok, ezeket példányosítjuk a Macska osztályba, metódusokon keresztül be tudjuk állítani a tartalmazott objektumok adattagjait, ugyan úgy mintha a main-be példányosítanánk ...
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!