Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
El recorrido <strong>de</strong> una estructura <strong>de</strong> datos es implem<strong>en</strong>tado usando iteradores. Estos<br />
garantizan la visita a cada ítem <strong>de</strong> su estructura <strong>de</strong> datos asociada <strong>en</strong> un or<strong>de</strong>n bi<strong>en</strong><br />
<strong>de</strong>finido. Deb<strong>en</strong> proveer al m<strong>en</strong>os las sigui<strong>en</strong>tes propieda<strong>de</strong>s:<br />
1. Elem<strong>en</strong>to actual. El iterador visita los elem<strong>en</strong>tos <strong>de</strong> datos uno a la vez. El<br />
elem<strong>en</strong>to que se visita actualm<strong>en</strong>te es llamado el ''elem<strong>en</strong>to actual''.<br />
2. Función sucesor. La ejecución <strong>de</strong>l paso al sigui<strong>en</strong>te elem<strong>en</strong>to <strong>de</strong> datos <strong>de</strong>p<strong>en</strong><strong>de</strong> <strong>de</strong><br />
la estrategia <strong>de</strong> recorrido implem<strong>en</strong>tada por el iterador. La función sucesor se usa<br />
para regresar el elem<strong>en</strong>to que será visitado <strong>en</strong>seguida: regresa el sucesor <strong>de</strong>l<br />
elem<strong>en</strong>to actual.<br />
3. Condición <strong>de</strong> terminación. El iterador <strong>de</strong>be proveer un mecanismo que chequee si<br />
se han visitado todos los elem<strong>en</strong>tos, o si falta alguno por visitar.<br />
4.8. CLASES PLANTILLA<br />
En <strong>C++</strong>, los tipos <strong>de</strong> datos g<strong>en</strong>éricos son llamados plantillas <strong>de</strong> clase o simplem<strong>en</strong>te<br />
plantillas (templates). Una plantilla <strong>de</strong> clase se parece a la <strong>de</strong>finición <strong>de</strong> una clase<br />
normal, <strong>en</strong> la que algunos aspectos son repres<strong>en</strong>tados por sustitutos (placehol<strong>de</strong>rs).<br />
Las <strong>de</strong>finiciones <strong>de</strong> clases plantilla empiezan con la línea:<br />
template <br />
<strong>en</strong> la línea que antece<strong>de</strong> a la <strong>de</strong>finición <strong>de</strong> clase. Pue<strong>de</strong> existir más <strong>de</strong> un tipo<br />
parametrizado. Si es así, estarán separados por comas y cada tipo estará precedido por la<br />
palabra reservada class. ( Ver apdo. 2.11., pág. 20).<br />
Luego, con la palabra clave template se inician todas las <strong>de</strong>claraciones <strong>de</strong> plantillas.<br />
Los argum<strong>en</strong>tos <strong>de</strong> una plantilla se <strong>en</strong>cierran <strong>en</strong> corchetes angulares.<br />
Cada argum<strong>en</strong>to especifica un sustituto <strong>en</strong> la sigui<strong>en</strong>te <strong>de</strong>finición <strong>de</strong> clase.<br />
Ejemplo:<br />
template // T es el sustituto<br />
Class Lista: ...<br />
{<br />
public:<br />
...<br />
void apéndice( const T dato);<br />
...<br />
};