Kezdőoldal » Számítástechnika » Programozás » C++ ha az ősosztály függvénye...

C++ ha az ősosztály függvénye virtual, akkor mi a jelentősége annak, ha az utódosztályban kiírom a függvény mellé hogy override? Mire való az override? A példákból nem látom a funkcióját.

Figyelt kérdés
2017. márc. 20. 16:50
 1/2 sharkxxx ***** válasza:
Azt jelenti, hogy nem lecserélni akarsz egy funkciót, és nem is új funkciót akarsz létre hozni, hanem hogy egy létező funkció működését akarod módosítani. Nem létező funkcióhoz nem lehet override-ot írni. Az új funkciónak pontosan ugyan olyan paramétereket kell tartalmaznia, mint a régi funkciónak.
2017. márc. 20. 17:21
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:

Ha virtual egy függvény akkor az bekerül a virtuális metódustáblába minden osztálynak van egy ebből. Egy osztály gyermekosztályainak a v táblája pedig mindig a szülő osztály v táblájának a másolata. Amikor pedig overridols akkor a gyermekosztály v táblájában megváltoztatod az ahhoz a metódushoz tartozó bejegyzést.


Ezért ha overridolsz akkor felül írod ezért fog a leszármazott osztály verziója meghívódni a szülő osztály verziója helyett.


Egy példánynak mindig annak az osztálynak a v táblájára lesz egy hivatkozása amelynek meghívtad a konstruktorát az az amilyen típusú egy objekted konkrétabb formában.


Pl.

Szörny példány = new Óriáspolip();

Itt a példány objektum típusa a szörny ezért a példányod a szörny publikus tagjait fogod tudni elérni pl osztályon kívülről. De neked van egy Szörnytámad metódusod a szörny osztályban de szörnyből több van neked ezért ez így nem jó de ha virtuálisan van definiálva akkor felülírható a polip osztályban és ha így tettél akkor nem a szörny metódusa hívódik meg hanem a polipé mert a példányod a polipod v táblájára hivatkozik.


virtual,

abstract,

override


Ezekkel definiált metódusok min virtuálisak lesznek.

2017. márc. 20. 17:45
Hasznos számodra ez a válasz?

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!