title: Dynamic cast
text: # Dynamic cast
  
  Il linguaggio di programmazione C++, oltre al cast esplicito stile C, dispone di altri quattro tipi di cast espliciti: const cast, dynamic_cast, reinterpret cast e static cast.
  
  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 è 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:
  
  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).
  
  