PDA

View Full Version : [C++]dynamic_cast???


Kleidemos
01-04-2003, 16:41
A cosa serve in c++ dynamic_cast< tipo >( ) ???????

/\/\@®¢Ø
01-04-2003, 20:06
Il dynamic_cast server pe cambiare il tipo di un puntatore o di un riferimento ad un oggetto in modo "controllato".
Ci sono diverse occasioni in cui questo puo' accadere: ad esempio hai un puntatore ad un oggetto di un certo tipo e vuoi provare a convertirlo in un oggetto di una classe derivata.

Ti faccio un esempio pratico
supponi ad esempio di avere tre classi , A B e C, con B e C che sono in realta' sottoclassi di A:

A
/ \
B C


e supponiamo che tu abbia un puntatore ad un oggetto di tipo A.
code]
A* x;
/* ... */
B* y = dynamic_cast<B*( x );
[/code]
dynamic_cast<B*>(x) ritorna un puntatore valido solo se x e' effettivamente un oggetto di ti po B. Se invece x e' di tipo A o tipo C, viene ritornato un puntatore nullo.

Spero di essermi chiarito a sufficienza...


ciao
Marco