[MontelLUG] Il problema del distruttore misterioso

Davide Rondini davide.rondini a gmail.com
Mer 12 Set 2007 12:04:49 CEST


Il 12/09/07, Alessandro Galli<alessandro.galli a gmail.com> ha scritto:
> Alle mercoledì 12 settembre 2007, Davide Rondini ha scritto:
> > Ciao,
> >
> > Si tratta di un problema di allocazione della memoria in C++ che mi
> > lascia perplesso, perché pare comportarsi contro quanto è la teoria
> > del C++.
> >
> > Si tratta di una classe di questo tipo:
> >
> > class Sample {
> >
> > public:
> >      Sample();
> >      virtual ~Sample();
> >
> Perchè virtual?

Beh, di default i distruttori sono virtuali. E' prassi del mio collega
indicarlo nel codice, ma nel caso specifico non ha alcuna importanza,
perché la classe non deriva da niente e non ha figli.
In ogni caso ho provato anche a toglierlo, ma senza risultato. Con il
debugger sono riuscito ad arrivare alla conclusione che potrebbe non
essere un errore nel distruttore, ma in un accesso da qualche parte ai
dati allocati, perché mi sono accorto che in effetti soltanto i primi
elementi del vettore risultano corrotti, mentre io pensavo che si
trattasse di un puntatore deallocato. Tuttavia una situazione del
genere l'avevo avuta anche in un altro caso, e il dubbio mi rimane.

Ciao
CD




More information about the montellug mailing list