Logo

¡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.
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.