Programación General > C/C++
Sobrecargar operador = con punteros
(1/1)
krnl64:
Hola, he escrito una clase lista cuya interfaz declaro a continuación
--- Código: C++ --- class linkedlist { public: linkedlist(void); // default constructor linkedlist (const linkedlist& tocopy); // copy constructor ~linkedlist(); // destructor bool insert ( const int value ); // insert element bool remove ( void ); // remove first element bool is_empty ( void ) const; // returns if the list is empty int size ( void ) const; // return list size linkedlist& operator = (const linkedlist& list); // overload = operator int& operator [] ( const int index ) const; // overload subscript operator private: struct node { int value; // node struct node* next; }; int elements; // amount of elements node* firstnode; // first node };
Lo que quiero conseguir es que cuando escriba esto
--- Código: C++ --- linkedlist* lista1 = NULL; linkedlist* lista2 = NULL; // creo lista1 con new lista2 = lista1;
no se copie tal cual el objeto, sino que se cree memoria para el y se copien los valores.
He probado a sobrecargar el operador = de esta manera
--- Código: C++ --- linkedlist& operator = (const linkedlist* &list);
pero no consigo que cuando se ejecuta la linea 7 entre en la funcion.
Alguien sabe como hacer esto ?
Gracias
Amilius:
*lista2 = lista1;
:)
r0d:
o aun:
*lista2 = *lista1;
pero ¿porque utilizar tus listas como punteros, que te complicas la vida?
Osea, en vez de
--- Código: C++ ---linkedlist* lista1 = NULL;linkedlist* lista2 = NULL;lista2 = lista1;
porque no hacer:
--- Código: C++ ---linkedlist lista1;linkedlist lista2;lista2 = lista1;
krnl64:
Porque me va a hacer falta clonar objetos que los usan y he de proveer a mis clases de ese mecanismo.
Gracias
Navegación
Ir a la versión completa