PDA

Visualizza la versione completa : [C++] Scopo di typedef


lucia983
24-02-2006, 18:52
ho una classe.. dentro vengono definiti costruttore, distruttore e poi alla fine c'Ŕ una cosa di questo genere:

typedef std::list< adj_elem >::iterator adj_list_iterator;

che scopo ha?! qualcuno pu˛ aiutarmi a capire!?

XWolverineX
24-02-2006, 19:32
Il typedef serve per creare sinonimi di tipi di dato, e ci˛ Ŕ molto utile per la portabilitÓ del tuo programma.

typedef std::list< adj_elem >::iterator adj_list_iterator;
Dichiara un sinonimo di std::list< adj_elem >::iterator sostituendolo con adj_list_iterator
In questo modo, se vuoi un oggetto di quel tipo, ti basterÓ fare

adj_list_iterator Prova;
invece di scrivere ogni volta

std::list< adj_elem >::iterator Ciao;

E cio Ŕ importante anche per la portabilitÓ
Mettiamo caso hai un programma che utilizza vari adj_list_iterator.
Improvvisamente scopri che nel tuo programma serve std::list< adj_elem >::vector invece di std::list< adj_elem >::iterator ...
Se tu avessi scritto std::list< adj_elem >::iterator per ogni dichiarazione sarebbe un guaio sostituire tutto, ma e hai usato il typedef, ti basterÓ cambiare quello per avere un programma giÓ nuovamente funzionante.

Loading