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
Prueba a declarar tu lista como
lista<Personaje*> _lista;
hola!
pues sí que era eso MUCHAS GRACIAS!!! :D:D:D