Bonjour à tous,
Voila, j'ai un programme structuré sur la base d'une classe "GameState"
ne contenant que des fonctions virtuelles. Les états du programmes sont
des classes qui héritent de cette classe "GameState".
Lorsque l'on change d'état, la classe actuelle est détruite par un
delete et la suivante est crée par un new.
Hors je m'aperçoit que les fonctions destructeurs ne sont pas appelées.
Ceci est d'ailleurs visible à l'execution par l'augmentation de la
mémoire utilisée à chaque changement d'état. De plus par un système de
fichier log, je confirme la non destruction de ces classes.
J'utilise Visual studio 2005 SP2.
Pour les plus curieux, voir ci-dessous un lien ou trouver le source et
le projet VC2005 ainsi que l'executable.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Sylvain
Harry wrote on 11/11/2007 21:35:
Lorsque l'on change d'état, la classe actuelle est détruite par un delete et la suivante est crée par un new. Hors je m'aperçoit que les fonctions destructeurs ne sont pas appelées.
normal puisqu'il n'y a pas de destructeur ... dans la classe de base. il doit exister pour être défini explicitement virtuel (ici un dst non virtuel a été créé par le compilo).
Lorsque l'on change d'état, la classe actuelle est détruite par un
delete et la suivante est crée par un new.
Hors je m'aperçoit que les fonctions destructeurs ne sont pas appelées.
normal puisqu'il n'y a pas de destructeur ... dans la classe de base.
il doit exister pour être défini explicitement virtuel (ici un dst non
virtuel a été créé par le compilo).
Lorsque l'on change d'état, la classe actuelle est détruite par un delete et la suivante est crée par un new. Hors je m'aperçoit que les fonctions destructeurs ne sont pas appelées.
normal puisqu'il n'y a pas de destructeur ... dans la classe de base. il doit exister pour être défini explicitement virtuel (ici un dst non virtuel a été créé par le compilo).