Bonjour,
j'ai un problème, le destructeur d'une de mes classe n'est pas appellé lors d'un delete.
Ici je passe bien par le delete, l'objet Image recupere du tampon est bien valide avec des attributs memebres cohérents
Mais son destructeur n'est pas appelé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 if (m_tampon_image->attendreFileImagesDecodeesPlusVide()) { Image* im = m_tampon_image->defilerImageDecodee(); if (im) { dessiner(); delete im; m_compteur->tic(); } }
J'instancie mes images comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Image::~Image(void) { if (m_donnees_fic) delete [] m_donnees_fic; if (m_pixels_decode) delete [] m_pixels_decode; #if defined DEBUG_TAMPON_IMAGE fprintf(stderr,"Destructeur Image\n"); #endif }
Ma classe Image n'est pas heritee ni n'herite de quoi que ce soit, le destructeur n'est pas declaré virtuel...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 // creation d'une image im = new Image(header->width,header->height); // passage des donnees utiles im->setDonnees(donneespixels, donnees, entete, code_format_tga); return im;
Cela vous est il deja arrivé ?
Partager