HyperText
01-01-2010, 15:04
Salve,
ho queste 2 classi:
// 1° classe
class Partita {
char * SquadraA;
char * SquadraB;
public:
[...]
~Partita ( ) { cout << "distruttore PARTITA" << endl; delete [] SquadraA; delete [] SquadraB; };
};
// 2° classe
class Lista
{
Nodo * testa;
public:
[...]
~Lista ( ) {
Nodo * aux = testa;
while ( testa )
{
cout << "distruttore LISTA" << endl;
aux = testa;
testa = testa->Nptr; // puntatore al prossimo Nodo
delete aux;
}
}
};
Il problema sorge quando cerco di eseguire questo codice:
Lista * L = new Lista;
Partita P;
L.inserisciPartita ( P ); // inserisco una Partita nella Lista
delete L;
E' proprio "delete L;" che mi fa crashare il programma.
Ma i costruttori son scritti giusti?
Il risultato che mi stampa è:
distruttore LISTA
distruttore PARTITA
e crasha.
cosa c'è che non va nei distruttori?
Ah, se ometto quel "delete L;" il programma termina correttamente.
Grazie
:ciauz:
ho queste 2 classi:
// 1° classe
class Partita {
char * SquadraA;
char * SquadraB;
public:
[...]
~Partita ( ) { cout << "distruttore PARTITA" << endl; delete [] SquadraA; delete [] SquadraB; };
};
// 2° classe
class Lista
{
Nodo * testa;
public:
[...]
~Lista ( ) {
Nodo * aux = testa;
while ( testa )
{
cout << "distruttore LISTA" << endl;
aux = testa;
testa = testa->Nptr; // puntatore al prossimo Nodo
delete aux;
}
}
};
Il problema sorge quando cerco di eseguire questo codice:
Lista * L = new Lista;
Partita P;
L.inserisciPartita ( P ); // inserisco una Partita nella Lista
delete L;
E' proprio "delete L;" che mi fa crashare il programma.
Ma i costruttori son scritti giusti?
Il risultato che mi stampa è:
distruttore LISTA
distruttore PARTITA
e crasha.
cosa c'è che non va nei distruttori?
Ah, se ometto quel "delete L;" il programma termina correttamente.
Grazie
:ciauz: