[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