Polimorfizmus
A polimorfizmus és a virtuális függvények segítségével olyan szoftverek
fejleszthetők, melyek könnyű módszerrel bővíthetőek. Ezek a programok az
osztály hierarchia minden objektumát az ősosztály objektumaiként kezelik, így
az újonnan hozzáadott osztályok objektumait is rögtön kezelni tudják. Csak
azoknál a programrészeknél kell módosítást végrehajtani, melyek specifikus
információkat használnak az újonnan hozzáadott osztályról.
Switch
A különböző adattípusok használatára a switch az egyik alternatív módszer, hiszen ezzel
más-más utasításokat lehet végrehajtatni az objektum típusának függvényében.
Például a formák osztályának hierarchiájában kiválasztható, hogy a melyik
típusú formához melyik print() függvényt hívjuk meg. A switch-el azonban problémák is vannak. A
programozó kifelejthet egy lehetséges esetet, például mikor egy új osztállyal
bővíti a programot elfelejti beírni annak print() esetét a switch-be. Ugyanígy
ha megváltoztatunk vagy kitörlünk egy osztályt, akkor mindenik switch-ből ki
kell törölni annak esetét és, különben egy hibákkal teli program lesz az
eredmény.
Virtuális függvények
A switch logikájának
automatizálását a virtuális függvények valósítják meg. Legyen egy Shape ősosztály, melynek deriváltjai a Point, Circle, Triangle, Rectangle és Square. Mindenik osztálynak van egy printShapeName függvénye, mely az adott forma nevét írja
ki, ezért különbözőek. Jó lenne mégis, ha mindenik forma azonos módon kezelhető
lenne, hisz egy ősosztályból származnak. Más szóval, ha az ősosztály szintjén
meghívjuk a printShapeName függvényt,
akkor a program dinamikus módon (futás közben) határozza meg, melyik derivált
osztály függvényéről van szó. Ehhez a printShapeName függvényt virtuálisnak kell deklarálni az
ősosztályban, és mindenik örökös felül kell írja a maga módján.
#include
using namespace std;
class Shape{
public:
virtual void
printShapeName() const{
cout
http://dlvr.it/SyhMMc
fejleszthetők, melyek könnyű módszerrel bővíthetőek. Ezek a programok az
osztály hierarchia minden objektumát az ősosztály objektumaiként kezelik, így
az újonnan hozzáadott osztályok objektumait is rögtön kezelni tudják. Csak
azoknál a programrészeknél kell módosítást végrehajtani, melyek specifikus
információkat használnak az újonnan hozzáadott osztályról.
Switch
A különböző adattípusok használatára a switch az egyik alternatív módszer, hiszen ezzel
más-más utasításokat lehet végrehajtatni az objektum típusának függvényében.
Például a formák osztályának hierarchiájában kiválasztható, hogy a melyik
típusú formához melyik print() függvényt hívjuk meg. A switch-el azonban problémák is vannak. A
programozó kifelejthet egy lehetséges esetet, például mikor egy új osztállyal
bővíti a programot elfelejti beírni annak print() esetét a switch-be. Ugyanígy
ha megváltoztatunk vagy kitörlünk egy osztályt, akkor mindenik switch-ből ki
kell törölni annak esetét és, különben egy hibákkal teli program lesz az
eredmény.
Virtuális függvények
A switch logikájának
automatizálását a virtuális függvények valósítják meg. Legyen egy Shape ősosztály, melynek deriváltjai a Point, Circle, Triangle, Rectangle és Square. Mindenik osztálynak van egy printShapeName függvénye, mely az adott forma nevét írja
ki, ezért különbözőek. Jó lenne mégis, ha mindenik forma azonos módon kezelhető
lenne, hisz egy ősosztályból származnak. Más szóval, ha az ősosztály szintjén
meghívjuk a printShapeName függvényt,
akkor a program dinamikus módon (futás közben) határozza meg, melyik derivált
osztály függvényéről van szó. Ehhez a printShapeName függvényt virtuálisnak kell deklarálni az
ősosztályban, és mindenik örökös felül kell írja a maga módján.
#include
using namespace std;
class Shape{
public:
virtual void
printShapeName() const{
cout
http://dlvr.it/SyhMMc
Komentar
Posting Komentar