Kezdőoldal » Számítástechnika » Programozás » Szerintetek jól látom az...

Szerintetek jól látom az osztálykezelést c++ban?

Figyelt kérdés

Adott egy négyzet alakú pálya, ami karaktereket tárol. A pálya mezőkből áll, melyek vagy üresek, vagy pénz, vagy gödör van rajtuk. Ezeket egy-egy karakter jelöli (üres az egy 'o', a pénz egy 'p', a gödör pedig 'g').


Úgy képzelem el, hogy létrehozok egy osztályt, ami egy mező tulajdonságait tárolja és ennek a tulajdonságait örökli a pénzes, gödrös mező is. A tábla osztály pedig a mezőt tartalmazza:


class mezo {

int sorKord, oszlopKord;

char alap = 'o';

};


class penz: public mezo{

char alap = 'p';

};


class godor: public mezo{

char alap = 'g';

};


class tabla{

mezo egymezo;

int meret;

};


Egyelőre ennyi adattagot vittem csak be. Arra vagyok kíváncsi, hogy jól gondolkozom-e az osztályok felépítését illetően?



2016. febr. 15. 21:02
1 2
 1/12 anonim ***** válasza:
Az alapelképzelés jó, a megvalósítás még nagyon messze van a jótól.
2016. febr. 15. 21:39
Hasznos számodra ez a válasz?
 2/12 A kérdező kommentje:
Hát igen. Kezdő vagyok még.
2016. febr. 15. 21:57
 3/12 anonim ***** válasza:
Gondolom a tábla nem egy mezőből áll. Ha ez a helyzet, miért nem azt mondod a gépnek, hogy több mezőből álljon?
2016. febr. 15. 23:54
Hasznos számodra ez a válasz?
 4/12 anonim ***** válasza:
Valoban az alap otlet jo, de tenyleg a tablaba tobb mezo kene nem?
2016. febr. 16. 09:18
Hasznos számodra ez a válasz?
 5/12 anonim ***** válasza:
51%

Nem jól gondolod. Az osztály tipusát a viselkedése határozza meg (duck typing), nem pedig egy tipuskód, mint nálad az "alap" változód értéke. Alapvetően nagyjából igaz, hogy ha valaki tipuskódokat használ, vagy switch-case szerkezetet (kevés értelmes kivételt leszámítva), akkor még nem érti az oop-t.


"When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck". Szoval nem attól lesz kacsa, mert a lábán van egy gyűrű, amire rá van írva, hogy "kacsa".


Szoval ennyi kódból nem lehet eldönteni, hogy jól gondolod-e.

2016. febr. 16. 09:45
Hasznos számodra ez a válasz?
 6/12 anonim ***** válasza:
47%

Kérdező:


"Arra vagyok kíváncsi, hogy jól gondolkozom-e az osztályok felépítését illetően?"


Igen, jól gondolkozol. Az oop lényege a kód ujrahasznosítás. Ezt még kicsit árnyalja az öröklés, a polimorfizmus. A hátránya, hogy erőforrás-igényes, sok memóriát fogyaszt, de ez ma már nem akkora gond, mint volt korábban.


Az előttem szóló nem tudom miről beszél, de lehet ő maga sem.

2016. febr. 16. 14:17
Hasznos számodra ez a válasz?
 7/12 A kérdező kommentje:

Tehát lehetséges, hogy a pénznek és a gödörnek is külön osztály kéne?

A tábla természetesen egy dinamikus tömb lesz.


Nemtudom, hogy egy mezönek, gödörnek, pénznek milyen viselkedése lehetne.

2016. febr. 16. 14:23
 8/12 anonim ***** válasza:
46%

Ahogy én értelmezem, nem kell külön osztály.

Az ősosztályod tulajdonságait változtatod meg csak. Ehhez nem kell másik osztály.


Az osztály lényege, hogy mondjuk faragsz figurákat fából és annak megfelelő szinre fested, amilyet a megrendelő kér.

Ez esetben az osztály lesz a figura, annak minden tulajdonságával, ez írja le az osztályt és lesz egy olyan tulajdonsága, hogy szín, ami publikus, tehát bárki (a megrendelő) megváltoztathatja.


Az oszályok lényege, hogy bonyolult struktúrák, amelyek esélyesek arra, hogy többször igénybe legyenek véve - példányosítva legyenek - a program futása során.

2016. febr. 16. 14:45
Hasznos számodra ez a válasz?
 9/12 anonim ***** válasza:
A gödör viselkedése (tulajdonsága) lehet a mélység, a pénznek meg a mennyiség.
2016. febr. 16. 14:46
Hasznos számodra ez a válasz?
 10/12 anonim ***** válasza:

Szerintem ennyiert kar osztalyokat letrehozni.


Ha csak 3 fele mezo van, eleg egy enum:

enum mezo { ures, penz, godor };


A tablanak pedig egy 2 dimenzios vektor, ami "mezoket" tartalmaz.

int **tabla;

(az enum az tulajdonkeppen egy int)


Persze lehet tovabbi opciokat bevezetni, de tulbonyolitani felesleges.

2016. febr. 17. 20:04
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!