Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: <<<-Basura->>> en 30 Abril 2014, 06:47 am



Título: Template Nodo
Publicado por: <<<-Basura->>> en 30 Abril 2014, 06:47 am
Alguien podría decirme donde esta el error

Código
  1. #ifndef _NODO_H_
  2. #define _NODO_H_
  3.  
  4. template <typename T>
  5. class Nodo{
  6. private:
  7. T *objeto;
  8. Nodo<T> *siguiente;
  9. public:
  10. Nodo<T>(T* pOjeto, Nodo<T*> pSiguiente);
  11. };
  12.  
  13. #endif // !_NODO_H_
  14.  
  15.  

Código
  1.  
  2. #include"Nodo.h"
  3.  
  4. template<typename T>
  5. Nodo<T>::Nodo(T* pOjeto){
  6.  
  7. }
  8.  


Título: Re: Template Nodo
Publicado por: eferion en 30 Abril 2014, 08:14 am
Los templates tienen que estar definidos e implementados SIEMPRE en el archivo de cabecera... no puedes poner implementación en un cpp.

La razón es que los templates se compilan sobre la marcha. Un template es un manual de instrucciones que permite crear clases... cada vez que el compilador se encuentra un uso del template que no existe aún, hace una compilación del template específica para ese uso... por esta razón se exige que los templates no tengan código en los cpp.


Título: Re: Template Nodo
Publicado por: <<<-Basura->>> en 2 Mayo 2014, 18:59 pm
Si tienes razon gracias