Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





error C2664, problemas con templates en C++

Iniciado por glglut, 20 de Noviembre de 2007, 12:35:05 PM

« anterior - próximo »

glglut

hola!

estoy implementado una template en c++ de una lista doblemente enlazada, aquí está la declaración:


template<class TIPO>
class nodo {
  public:
   nodo(TIPO v, nodo<TIPO> *sig = NULL, nodo<TIPO> *ant = NULL) :
      valor(v), siguiente(sig), anterior(ant) {}

  private:
   TIPO valor;
   nodo *siguiente;
   nodo *anterior;

  friend class lista<TIPO>;
};


con un método declarado:


template<class TIPO>
void lista<TIPO>::Insertar(TIPO v)
{
....
}


declaro una lista nueva: lista<Personaje> _lista; Personaje es una clase, entonces cuando hago _lista.Insertar(new Personaje()); el visual studio me suelta el siguiente error:

error C2664: 'lista<TIPO>::Insertar' : cannot convert parameter 1 from 'Personaje *' to 'Personaje'


la declaración del template es correcto y parece que todo está bien pero no entiendo pq me da ese error, he probado poniendo &new Personaje() y no me ha dado resultado..

alguna idea?

muchas gracias por adelantado :D

Zaelsius

Prueba a declarar tu lista como

lista<Personaje*> _lista;

glglut

hola!

pues sí que era eso MUCHAS GRACIAS!!! :D:D:D






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.