Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problemas con el linker y templates

Iniciado por Tarzan, 08 de Diciembre de 2007, 12:56:52 PM

« anterior - próximo »

Tarzan

Buenas a todos/as

Estoy utilizando templates para crear una lista que contenga objetos de cualquier tipo.
Tengo una clase Lista.h y una clase Nodo.h que emplean templates.
Algunos de vosotros ya me habéis aclarado que los templates se compilan o interpretan en el momento de acceder a sus métodos.
Es decir, imagino que puedo tener un método mal escrito y este no dará errores hasta que lo invoque desde cualquier sitio...

Mi problema es que, cuando trato de añadir un objeto a la lista, el linker se queja y me devuelve estos errores:

[Linker Error] Unresolved external 'Lista<Cliente>::~Lista<Cliente>()' referenced from C:\UTILIDADES\PROGRAMACION\BORLAND6\PROJECTS\GINECOLOGIA\MAIN.OBJ

[Linker Error] Unresolved external 'Lista<Cliente>::insertarAlPrincipio(Cliente)' referenced from C:\UTILIDADES\PROGRAMACION\BORLAND6\PROJECTS\GINECOLOGIA\MAIN.OBJ


Esto ocurre en el Main.cpp al incluir Lista.h
Si, en lugar de incluir Lista.h escribo #include "Lista.cpp" no salen esos errores. ¿Alguien puede decirme la razón?
¿Por qué no puedo incluir el lista.h?... Pienso que la clase o la plantilla están bien porque, de no estarlo, me daría error al incluir el Lista.cpp y no ocurre así.
Estoy un poco perdido con esto...

Saludos.



swapd0

Los templates deben de estar definidos en el fichero .h, ovidate de tener .h y .cpp cuando uses templates.

Una pregunta, ¿por que no usas las STL?






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.