Kezdőoldal » Számítástechnika » Programozás » Valaki el tudna mondani mi a...

Valaki el tudna mondani mi a haszna a virtualis fuggvenyeknek C++-ban?

Figyelt kérdés
Az elmeletet ertem nagyjabol, de nagykorlatban mikor van ra szukseg? Egy elo pelda kene, lehetoleg ne kitalalt ALMA meg GYUMOLCS osztalyokkal, hanem valodi problemaval.
2014. nov. 30. 01:58
 1/4 anonim ***** válasza:

Ha virtual nélkül használod, akkor vannak olyan esetek, mikor az utódban (Alma) az ős (Gyümölcs) függvényei hívódnak meg, akkor is, ha te az utódban azokat a függvényeket felülírtad:

#include <iostream>

using namespace std;

class Gy {

public:

void iz() {cout << "Gy" << endl;}

};


class A : public Gy {

public:

void iz() {cout << "A " << endl; }

};


int main() {


Gy *a = new A();

a->iz();

delete a;

return 0;

}


--> Mi azt szeretnénk, ha az a->iz() meghívás után azt írná ki, hogy "A", de ehelyett azt írja ki, hogy "Gy", pedig a függvény felül volt írva.

--> ha odatesszük a virtual szócskát a Gy osztály iz függvénye elé, akkor már helyesen fog működni a program, és az "A" szócskát fogja kiírni.

---------

A Java-ban minden metódus virtuális, anélkül, hogy eléjük tennéd a virtual szócskát, mivel így praktikusabb, mert legtöbbször azért írsz felül egy metódust, hogy mikor arra kerül a sor, akkor az új metódus hívódjon meg, és ne a régi.

2014. nov. 30. 02:27
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:
Szoval a pointereknel nem tudja. Es ha javaban minden virtualis alapbol, akkor ez egy defekt a C++-ban, csak ugy allitjak be mintha valami magikus dolog lenne, kozben pedig tervezesi hiba!! De sz.r vagy te Strostrup
2014. nov. 30. 18:00
 3/4 anonim ***** válasza:

Jézusom, szánalom a köbön.

Olvass utána gyökér.

2014. nov. 30. 20:52
Hasznos számodra ez a válasz?
 4/4 anonim ***** válasza:

Nem defekt, mert vannak olyan esetek, mikor az ős függvényét akarjuk meghívni. Javában ez is lehetséges.

....

Melleséleg javában nincsenek pointerek.

....

Ez nem csak pointereknél van így.

2014. nov. 30. 20:54
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!