Kezdőoldal » Számítástechnika » Programozás » Ez mit csinál? C++

Ez mit csinál? C++

Figyelt kérdés

X *x = dynamic_cast<X *>(Y) ;


//Itt ha az Y objektum X típusú akkor vissza adja annak memóriacímét igaz?


Ellenkező esetben pedig null-t ad vissza.


Jól tudom.


2012. okt. 15. 01:30
 1/7 A kérdező kommentje:

Ugye a zárójelek közé egy memóriacímet kell megadni.

X *x = dynamic_cast<X *>(Y) ; //Ez helytelen akkor ugye?

X *x = dynamic_cast<X *>(&Y) ; //Így helyes.


Igazam van mindenben amit írtam?


És még annyit had kérdezzek meg,hogy mi különbség van az implicit és az explicit konverzió között?

2012. okt. 15. 01:35
 2/7 anonim ***** válasza:

Nem kellene olyan sokat gépelni a Google-ba.

Emberek tanuljátok meg használni...

De azért kikerestem neked:

[link]

2012. okt. 16. 01:26
Hasznos számodra ez a válasz?
 3/7 A kérdező kommentje:

Azt már olvastam de nem értem,mert nem elég részletes.

dynamic_cast<Ide jön az a típus,amilyen típusú objektum címét szeretnénk vissza kapni>(Ide pedig maga a megvizsgálandó objektum jön.)


Ha a zárójelek közt megadott objektum típusa nem olyan amilyet a < > jelek közt megadtunk akkor null ad vissza a dynamic_cast.


Mindent jól írtam?

Jól tudom?

2012. okt. 16. 02:34
 4/7 anonim ***** válasza:

"Ha a zárójelek közt megadott objektum típusa nem olyan amilyet a < > jelek közt megadtunk akkor null ad vissza a dynamic_cast."


Micsoda? Ha így működne, tök felesleges és értelmetlen lenne castolni. Minek castolnál át két azonos típus között?


Ezért se kéne amúgy sokat guglizni:

[link]

"if the types are not compatible, an exception will be thrown (when dealing with references) or a null pointer will be returned (when dealing with pointers)"

Ha a típusok nem kompatibilisek és referenciáról van szó akkor kivételt dob, pointerek esetén pedig null pointert ad.

Javaslom nézd meg a linken szereplő példákat is.

2012. okt. 16. 14:53
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:

Tudom,hogy mit csinál én csak a működésére lennék kíváncsi.

Hogy gyakorlatilag,hogy valósul meg ez a folyamat.


De még mindig nem kaptam választ arra,hogy minek kell<> jelek közé megadni egy típust.

2012. okt. 16. 22:50
 6/7 A kérdező kommentje:

A dynamic_cast kisebb-nagyobb jelei között megadott típussal jelezzük azt,hogy egy ilyen típusú objektumnak a memóriacímét szeretnénk,hogy vissza adjon a dynamic_cast abban az esetben,ha a dynamic_cast zárójelei között levő objektumnak a típusa megegyezik a kisebb-nagyobb jelek között megadott típussal.


Ennyire lettem volna kíváncsi és több mint egy hetembe tellett.

2012. okt. 17. 01:22
 7/7 A kérdező kommentje:

Már csak annyit mondjatok meg,hogy mit ad vissza abban az esetben ha referenciáról van szó és ha a dynamic_cast kisebb nagyobb jelei között megadott típus nem egyezik a dyanmik_cast zárójelében levő objektum típusával.


mutató esetében 0 val tér vissza ebben az esetben ezt tudom.


Referenciánál mi az amit vissza ad?

2012. okt. 17. 01:28

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!