Ez mit csinál? C++
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.
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?
Nem kellene olyan sokat gépelni a Google-ba.
Emberek tanuljátok meg használni...
De azért kikerestem neked:
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?
"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:
"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.
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.
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.
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?
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!