Dynamic cast: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Lo C-style casting è esplicito, non implicito. Viene interpretato dal compiler come uno degli casting (espliciti) C++, non è quindi un casting a sé stante. Da riscrivere del tutto |
m tag source deprecati, replaced: <source lang= → <syntaxhighlight lang=, </source> → </syntaxhighlight> |
||
(2 versioni intermedie di 2 utenti non mostrate) | |||
Riga 1:
{{F|linguaggi di programmazione|febbraio 2013}}
{{titolo
Il linguaggio di programmazione [[C++]], oltre al [[conversione di tipo|cast]] esplicito stile C ''()'', dispone di altri quattro tipi di cast espliciti: ''[[
Il costrutto '''dynamic_cast''' permette di convertire un puntatore ad un oggetto di una classe base ad uno di classe derivata, ma solo se la classe base è [[Polimorfismo (informatica)|polimorfa]] (ovvero possiede almeno un metodo virtuale, distruttore virtuale incluso). La validità dell'operazione viene verificata in run-time. Qualora l'operazione non sia valida il costrutto restituisce un puntatore nullo.
Esempio:
<
class Padre {.....};
class Figlio : public Padre {.....};
Riga 28:
cout << "conversione fallita";
}
</syntaxhighlight>
Si tenga presente che affinché il costrutto ''dynamic_cast'' lavori correttamente è necessario che il supporto [[RTTI]] del compilatore sia attivo (spesso, nella produzione del [[firmware]], si sceglie di non attivare [[RTTI]] poiché questa funzionalità assorbe una quantità di risorse non trascurabile).
== Voci correlate ==
* [[
* [[Conversione di tipo]]
{{C++}}
{{portale|informatica}}
[[Categoria:C++]]
|