[C con Clase] Plantillas en C++

lsri8088 lsri8088 en gmail.com
Mie Mayo 16 15:53:10 CEST 2007


Hola, a ver si podeis ayudarme... ya no se que hacer... soy lago
novato en C++ :-(
Tengo estas dos plantillas en la misma unidad:


/******** PLANTILLA NODO *******************************/
template <class T, bool(*FunMenor)(const T&, const T&)> class AVL;
template <class T>
class NodoAVL{
    protected:
        T dato;
        NodoAVL* hi;
        NodoAVL* hd;
        int altura;
    public:
        NodoAVL(NodoAVL* hi= NULL, NodoAVL* hd = NULL);
        NodoAVL(const T& d, NodoAVL* s = NULL);
        ~NodoAVL();

    friend class AVL<T,FunMenor)>;  //linea 29
};
/* IMPLEMENTACION */
....
....

/******** PLANTILLA AVL (Arbol AVL) *******************************/
template<class T> class Pila;
template <class T, bool(*FunMenor)(const T&, const T&)>
class AVL{
    private:
        NodoAVL<T>* raiz;
        int numElems;
        Pila<NodoAVL<T>*>* iterador;

        void copia(NodoAVL<T>* &, NodoAVL<T>*);
        void libera(NodoAVL<T>*&)
...
....

};

Y me da estos errores:

[C++ Error] UAVL.h(29): E2451 Undefined symbol 'FunMenor'
[C++ Error] UAVL.h(29): E2401 Invalid template argument list
[C++ Error] UAVL.h(29): E2061 Friends must be functions or classes

Saludos




Más información sobre la lista de distribución Cconclase