-
Problème de destructeur
Salut!
Alors je viens de faire un programme qui marche correctement mais fait un gros segmentation fault à la fin, qui disparait quand j'enlève un des destructeurs.
J'ai quelque chose de ce genre:
-Une classe A abstraite dont héritent des classes a,b,c
-Un classe B qui a parmi ses attributs un tableau de pointeurs sur A.
Le problème vient du destructeur de B. Alors comment je dois l'écrire pour détruire le tableau de A* et l'objet B?
Merci d'avance pour vos réponses.
-
C'est un tableau C ou un conteneur ? Si c'est un tableau C alors delete[] tab; sinon boucle pour delete (cf FaQ pour la bonne facon de faire).
Le destructeur de A est bien virtuel ?
-
As tu déclaré des destructeurs virtuel dans ta classe mère ?
-
Salut,
tableau => std::vector.
pointeur => std::unique_ptr ou std::shared_ptrSi tu as définis le destructeur, c'est qu'il n'est pas trivival ... et que par conséquent tu as redéfinis l'opérateur d'affectation et le constructeur par copie.
cf F.A.Q Qu'est-ce que la forme canonique orthodoxe de Coplien ?