Van mondjuk egy gráf osztála, és definiálni akarom a súlyozott gráfokat. Akkor származtassam a gráf osztályból egyszerűen és írjam át, amit pluszba kell. Vagy legeyen egy osztály, ami adatként vesz egy gráf osztályt + a súlyokat? Melyik a szokás, melyik jobb?
Mert az objektum-orientáltság ezt sugallja. A valóságban is a súlyozottat az általánosabb gráfokból képezzük úgy, hogy hozzáadunk még egy tulajdonságot. A másik, hogy ha csak beágyazott objektumként kezeled az általános gráfot, akkor azok metódusait macerásabb elérni, és másként is kell kezelned, mint ha az objektum saját elemei lennének. Márpedig a saját tulajdonságairól van szó, egyenrangú tulajdonságok pl. az élek száma és a súlyuk.
2012. jún. 15. 16:06
Hasznos számodra ez a válasz?
4/9 anonim válasza:
Származtasd és bővítsd ki!
Kényelmes és könnyű megoldás.
Valamit valóba, mint elhangzott az OOP is ezt "követeli" meg.
2012. jún. 15. 19:36
Hasznos számodra ez a válasz?
5/9 iostream válasza:
Ez helyzetfüggő. Nem mindig célszerű származtatni (sőt), de amíg ezt nem tudod eldönteni, addig valószínűleg ez gyakorlófeladat, így csináld csak. Ha sokat csinálod, előbb-utóbb érezni fogod, hogy mi az ésszerű megoldás.
2012. jún. 16. 07:58
Hasznos számodra ez a válasz?
6/9 anonim válasza:
Persze, van olyan, hogy egy objektum tartalmaz egy másikat, például egy kerékből nem származtatunk egy egész autót, vagy egy irodából sem származtatunk egy munkahelyet. De a fenti példában egy irányított gráfnak nem része(!) egy általános gráf, hanem mindkettő egy-egy önálló gráf. (A részgráfot most ne keverjük bele, az más tészta.) Szóval itt származtatni kell, ha valóban OOP-t akarsz megtanulni.
Tőlem persze úgy csinálod, ahogy akarod, de magaddal tolsz ki. :)
2012. jún. 16. 09:56
Hasznos számodra ez a válasz?
7/9 iostream válasza:
A származtatásnak két célja van: hogy neked ne kelljen újra megírni dolgokat, és hogy a külvilág egységesen tudja kezelni az ojjektumokat.
A második itt valószínűleg nem játszik, a kérdező csak simán csinálna egy súlyozott gráfot.
Az első pedig attól függ, hogy implementálta a sima gráfot. Ha nem tud átvenni belőle kódot, akkor csak szivatja magát, ha származtatni akar, ráadásul a virtuális függvények miatt még lassabb is lesz.
2012. jún. 16. 11:32
Hasznos számodra ez a válasz?
8/9 anonim válasza:
"iostream", kérlek írd meg, hol tanultál OOP-t, mert akkor oda nem megyek.
2012. jún. 16. 14:55
Hasznos számodra ez a válasz?
9/9 iostream válasza:
Hol van az írva, hogy a kérdező OOP megoldást akar? Sehol. Nem kötelező OO módon használni a rendelkezésedre álló eszközöket, sőt.
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!