Kezdőoldal » Számítástechnika » Programozás » Mi a különbség a felülírás és...

Mi a különbség a felülírás és az elfedés között?

Figyelt kérdés
Gyakori hiba, hogy függvények felülírásakor elfelejtjük a const kulcsszót, amely pedig a paraméter-szignatúrn része, igy a paraméter-szignatúra megváltoztatásával csak elfedjük a bázisosztály eredeti függvényét, nem pedig felülírjuk, ha ez igaz akkor mi a különbség a felülírás és az elfedés között?
2012. okt. 9. 03:48
 1/5 A kérdező kommentje:

Y osztály {

void x()const ; };

X osztály: public Y {

void x()const ; }

//Ez így felülírás?


Y osztály {

void x() ; };

X osztály: public Y {

void x()const ; }

//Ez így pedig elfedés?


Y osztály {

void x() ; };

X osztály: public Y {

void x() ; }

//Ez is felülírás?

2012. okt. 9. 03:51
 2/5 iostream ***** válasza:
100%

A const kulcsszó ugyanúgy a szignatúra része, mint a név és a paraméterek típusa, így akár paraméterrel is írhatjuk a példát:


class Y

{

virtual void f();

virtual void g();

};


class X: public Y

{

virtual void f();

virtual void g(int);

};


Ekkor f felül van írva X-ben, aminek csak akkor van jelentése, ha virtuális a függvény. Minden egyéb esetben lényegtelen, hogy ugyanaz-e a szignatúra vagy sem.

g viszont el van fedve, aminek már lehet jelentősége: X egy objektumán g-t nem tudjuk meghívni paraméter nélkül.

2012. okt. 9. 09:52
Hasznos számodra ez a válasz?
 3/5 A kérdező kommentje:

Kösz adtam zöld kezet de ezt a mondatot nem értem:

"Ekkor f felül van írva X-ben, aminek csak akkor van jelentése, ha virtuális a függvény. Minden egyéb esetben lényegtelen, hogy ugyanaz-e a szignatúra vagy sem."


A virtuális függvények még csak most jönnek a könyvben.

2012. okt. 9. 21:34
 4/5 iostream ***** válasza:
Hát ha nem virtuális a függvény, akkor tökéletesen mindegy, hogy felülírod vagy elfeded a függvényt, ugyanis úgyis az objektum vagy mutató/referencia típusa fogja meghatározni, hogy melyik függvény hívódik meg.
2012. okt. 9. 21:41
Hasznos számodra ez a válasz?
 5/5 A kérdező kommentje:
Hát én nem értem ezt az egész elfedést meg amiket itt beszélsz :(
2012. okt. 9. 21:48

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!