title: RTTI
text: # RTTI
  
  La RTTI (RunTime Type Information o RunTime Type Identification) consente ai programmi che manipolano puntatori e riferimenti ad oggetti di una classe base, di determinare il tipo dell'oggetto durante l'esecuzione invece che solo al momento della compilazione.
  
  Questa caratteristica è utile nei programmi in cui si ha l'esigenza di aggiungere una qualche funzione virtuale ad una gerarchia di classi, ma non si ha accesso al codice sorgente di queste classi. Infatti, l'aggiunta di questa funzione personale comporta la ricompilazione di tutte le funzioni membro che ne fanno uso. Questo è particolarmente vero per le librerie realizzate da terze parti: si hanno a disposizione soltanto i file header e la versione già compilata, ma non il codice sorgente. In questa situazione non è possibile effettuare la ricompilazione.
  
  Per i dettagli su come gestire questa caratteristica si rimanda alla documentazione del proprio linguaggio di programmazione.
  
  RTTI, come termine è tipicamente utilizzato in relazione al C++. Per far sì che le operazioni che coinvolgono il dynamic_cast<>, l'operatore typeid o le eccezioni funzionino in C++, l'RTTI deve essere abilitato.
  
  ## Esempio in C++
  
  Un esempio in cui l'RTTI è utilizzato è illustrato qui sotto:
  
  