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!
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!