Hola, he escrito una clase lista cuya interfaz declaro a continuación
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
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
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