Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Error en templates

Estas en el tema de Error en templates en el foro de C/C++ en Foros del Web. Hola, aca les dejo un enlace sobre una clase que hice (Lista) con templates cuando compilo me da este error: linea 7 --> error: template ...
  #1 (permalink)  
Antiguo 17/12/2014, 15:59
 
Fecha de Ingreso: diciembre-2014
Mensajes: 3
Antigüedad: 10 años
Puntos: 0
Error en templates

Hola, aca les dejo un enlace sobre una clase que hice (Lista) con templates
cuando compilo me da este error:




linea 7 --> error: template argument required for 'class lista'

este es el codigo

[URL="http://pastebin.com/kMDVqw1W"]http://pastebin.com/kMDVqw1W[/URL]
  #2 (permalink)  
Antiguo 18/12/2014, 00:18
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 2 meses
Puntos: 204
Respuesta: Error en templates

En vez de un enlace, suele ser mejor que pongas el código directamente aquí en el foro y lo decores con las etiquetas "Highlight".

Tu problema es que "class lista", como tal, no existe, ya que "lista" es un template. Lo que tienes que hacer es referenciar a una especialización de "lista". En tu caso, como "nodo" es también un template, puedes crear el enlace así:

Código C++:
Ver original
  1. friend class lista<T>;

Lo que se consigue con eso es que, lista<int> será friend de nodo<int>, pero no de nodo<string>, por ejemplo.

Un saludo.
  #3 (permalink)  
Antiguo 18/12/2014, 07:26
 
Fecha de Ingreso: diciembre-2014
Mensajes: 3
Antigüedad: 10 años
Puntos: 0
Respuesta: Error en templates

Muchas gracias por la respuesta, hice lo que me dijiste y me aparecio el siguiente error:

error: 'lista' is not a template

este error se genera el la linea: friend class lista<T>
  #4 (permalink)  
Antiguo 18/12/2014, 07:54
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 2 meses
Puntos: 204
Respuesta: Error en templates

Código C++:
Ver original
  1. template <typename T>
  2. class lista;
  3.  
  4. template <typename T>
  5. class nodo {
  6.  
  7.     friend class lista<T>;
  8.  
  9.     private:
  10.             T valor;
  11.             nodo<T> *sig;
  12.  
  13.     public:
  14.     nodo(T val){ valor = val; sig = 0; }
  15. };
  16.  
  17. template< typename T >
  18. class lista
  19. {
  20.  // ...
  21. };

Última edición por eferion; 18/12/2014 a las 07:59
  #5 (permalink)  
Antiguo 18/12/2014, 08:13
 
Fecha de Ingreso: diciembre-2014
Mensajes: 3
Antigüedad: 10 años
Puntos: 0
Respuesta: Error en templates

Muchas gracias! se soluciono todo! :)

Etiquetas: clase, templates
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:17.