PDA

View Full Version : [C++] Sovraccarico operatore = per assegnamenti di oggetti di tipi derivati


cdere
24-01-2010, 00:08
Salve a tutti,
ho implementato la struttura dati "Insieme" in C++ e tutto sembra andare, a parte però quando provo a fare un assegnamento tra oggetti del tipo:

Insieme Z,B;

Z.insInsieme(1); //metodo per inserire l'elemento in argomento
Z.insInsieme(2);
Z.insInsieme(3);

B=Z;


e voi direte bhè certo, visto che Z e B sono di un tipo derivato non elementare del linguaggio per fare questa cosa bisogna sovraccaricare l'operatore '=' eh.. l'ho fatto!


int main()
{
Insieme Z,B;

Z.insInsieme(1);
Z.insInsieme(2);
Z.insInsieme(3);
Z.insInsieme(4);
Z.insInsieme(5);
Z.insInsieme(6);
Z.cancInsieme(1);
cout << Z.appartiene(3);
cout << Z.appartiene(5);
cout << Z.appartiene(1);
cout << Z.appartiene(8) << endl;
stampaInsieme(Z);
cout << endl;

B=Z;
stampaInsieme(B);
}


ottengo come risultato che quando viene chiamato l'operatore di assegnamento sovraccaricato sembra funzionare si, ma è come se Z fosse vuoto, infatti nella stampa ottengo questo:


1100
6
5
4
3
2

4072832 <- le righe incriminate!
4064232 <- le righe incriminate!

Process returned 0 (0x0) execution time : 0.031 s
Press any key to continue.


grazie mille a tutti!

cdere
24-01-2010, 01:17
risolto, mancava il costruttore di copia!

bye e grazie lo stesso raghi :D