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ù)?