04.06.2015 Views

Manual básico de Programación en C++

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 />

};

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!