Ciao ... Siccome l' overloading dell' operatore + (nella classe lista) è un metodo della classe, il parametro da passare al metodo è solo uno (perchè un' operando è sottointeso e nascosto grazie al puntatore this) cosa che non avviene in Complex (che è una funzione esterna alla classe e quindi non fa uso del puntatore this) ... Comunque non mi sembra che l' implementazione dell' overloading sia corretta ..
Tecnicamente forse ho capito, ma praticamente mi resta difficile pensare a come prendere l'ultimo elemento della prima lista e collegarlo al primo della seconda....

Cioè , se io scrivessi in chiamata (main.cpp):
codice:
lista l1,l3,l4;
l4=l1+l3;

In file.h :

codice:
struct nodo
{
   int valore;
   nodo *succ;
};

class lista
{
private:
  nodo *l;

public:
  lista(){l=0;}   //Costruttore
  ~lista();       //Distruttore
  lista operator+(lista l1);
};
Cioè in questo caso, come farei ad eseguire la stessa cosa qui dentro(con i puntatori a nodo)?

file.cpp
codice:
lista lista::operator+(lista l1){

/* cioè a questo punto non riesco a capire come scrivere le stesse cose*/
/* ho provato, si compila, ma poi mi escono una serie di asterischi*/

};
Qualche idea su una possibile implementazione(da qualcuno un po più bravo di me, purtroppo da autodidatta non riesco a fare molto di più)?