[C con Clase] Plantillas en C++
Salvador Pozo
salvador en conclase.net
Mie Mayo 16 17:30:22 CEST 2007
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> ...
l> template <class T, bool(*FunMenor)(const T&, const T&)> class AVL;
l> ...
l> friend class AVL<T,FunMenor)>; //linea 29
l> ...
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
Hola:
Entiendo, por la declaración de la plantilla de AVL, que FunMenor es una plantilla de función. No incluyes el prototipo de esta plantilla, y ese es el primer error, el tercero, y sospecho que también el segundo, que marca el compilador.
El prototipo para esa plantilla es:
template<class T> bool FunMenor(const T&, const T&);
Hay otro error, pero supungo que es de transcripción: sobra un ')' en la declaración "friend", debería ser:
friend class AVL< T,FunMenor >;
O también:
friend class AVL< T,FunMenor<> >;
Hasta pronto.
--
Salvador Pozo (Administrador)
mailto:salvador en conclase.net
Más información sobre la lista de distribución Cconclase