Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/12/2008, 22:24
Avatar de Instru
Instru
 
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 1 mes
Puntos: 52
Respuesta: C++ y templates. No veo el error.

Bueno, encontre una solucion. No se si sea la correcta, pero tras leer varios libros y articulos sobre los templates, llegue a la conclusion de que hay que meter un #include"implementacion.cpp" en la cabecera al igual que añadir unos #ifndefs
Con esto, todo compila y funciona bien:

Código PHP:
#ifndef ARBOL
#define ARBOL
template<typename T>
class 
Arbol{
    protected:
        
Nodo<T> *raiz;
    public:
        
Arbol(){raiz=NULL;};
        
virtual ~Arbol()=0;
        
virtual void Insert(Nodo<Tnod)=0;
        
virtual void PreOrder(void)=0;
        
virtual void InOrder(void)=0;
        
virtual void PosOrder(void)=0;
};

template<typename T>
class 
ArbolEvaluacion : public Arbol<T>{
    protected:
    public:
        
ArbolEvaluacion();
        ~
ArbolEvaluacion();
        
void Insert(Nodo<Tnod);
        
void PreOrder(void);
        
void InOrder(void);
        
void PosOrder(void);
};
#include"arbol.cpp"
#endif
//////////////////////
#include"arbol.h"
template<typename T>
ArbolEvaluacion<T>::ArbolEvaluacion()
{
}

template<typename T>
ArbolEvaluacion<T>::~ArbolEvaluacion()
{
}

template<typename T>
void ArbolEvaluacion<T>::Insert(Nodo<Tnod)
{
}

template<typename T>
void ArbolEvaluacion<T>::PreOrder(void)
{
}

template<typename T>
void ArbolEvaluacion<T>::InOrder(void)
{
}

template<typename T>
void ArbolEvaluacion<T>::PosOrder(void)
{

A ver si a alguien le llega a servir