[C con Clase] Plantillas en C++

Steven Davidson steven en conclase.net
Mie Mayo 16 17:30:39 CEST 2007


Hola lsri8088,

El pasado 2007-05-16 13:53:10, lsri8088 escribió:

l> Hola, a ver si podeis ayudarme... ya no se que hacer... soy lago
l> novato en C++ :-(
l> Tengo estas dos plantillas en la misma unidad:
l> /******** PLANTILLA NODO *******************************/
l> template <class T, bool(*FunMenor)(const T&, const T&)> class AVL;
l> template <class T>
l> class NodoAVL{
l>     protected:
l>         T dato;
l>         NodoAVL* hi;
l>         NodoAVL* hd;
l>         int altura;
l>     public:
l>         NodoAVL(NodoAVL* hi= NULL, NodoAVL* hd = NULL);
l>         NodoAVL(const T& d, NodoAVL* s = NULL);
l>         ~NodoAVL();
l>     friend class AVL<T,FunMenor)>;  //linea 29
l> };

[CORTE]

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

El error es que te has dejado un paréntesis cerrado ')'. Escribes:
friend class AVL<T,FunMenor)>;

cuando debería ser:
friend class AVL<T,FunMenor>;


Espero que esto te solucione el problema.

Steven


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