Sobrecarga de Operador de Asignación
Publicado por Julián (4 intervenciones) el 17/02/2015 16:34:30
Buenos días amigos, estoy empezando con C++ en la universidad y aún no entiendo bien la parte de la sobrecarga de operadores, en este momento me encuentro programando la sobrecarga del operador " = " de la clase Lista y tengo un problema, el programa me compila y todo bien pero cuándo ejecuto no hace lo que tiene que hacer y la verdad no estoy muy seguro de mi cógido por la razón de que no he entendido bien esta parte, aquí les dejo el código:
Cabecera: lista<Elemento>& operator=(const lista<Elemento> &l2);
Código:
template <class Elemento>
lista<Elemento>& lista<Elemento>::operator=(const lista<Elemento> &l2)
{
Nodo<Elemento> *actual,*actual2=l2.primero;
if(this!=&l2)
{
if(actual2!=NULL)
{
Nodo<Elemento> *nuevo = new Nodo<Elemento>(actual2->getDato(),NULL,NULL);
primero=nuevo;
actual=primero;
actual2 = actual2->getSiguiente();
while(actual2!=NULL)
{
Nodo<Elemento> *nuevo = new Nodo<Elemento>(actual2->getDato(),NULL,NULL);
actual->setSiguiente(nuevo);
nuevo->setAnterior(actual);
actual->getSiguiente();
actual2->getSiguiente();
}
}else{
primero=NULL;
}
}
return(*this);
}
espero que me puedan ayudar, se los agradecería enormemente. Gracias de antemano.
Cabecera: lista<Elemento>& operator=(const lista<Elemento> &l2);
Código:
template <class Elemento>
lista<Elemento>& lista<Elemento>::operator=(const lista<Elemento> &l2)
{
Nodo<Elemento> *actual,*actual2=l2.primero;
if(this!=&l2)
{
if(actual2!=NULL)
{
Nodo<Elemento> *nuevo = new Nodo<Elemento>(actual2->getDato(),NULL,NULL);
primero=nuevo;
actual=primero;
actual2 = actual2->getSiguiente();
while(actual2!=NULL)
{
Nodo<Elemento> *nuevo = new Nodo<Elemento>(actual2->getDato(),NULL,NULL);
actual->setSiguiente(nuevo);
nuevo->setAnterior(actual);
actual->getSiguiente();
actual2->getSiguiente();
}
}else{
primero=NULL;
}
}
return(*this);
}
espero que me puedan ayudar, se los agradecería enormemente. Gracias de antemano.
Valora esta pregunta
0