bonjour
Je crois avoir compris que une classe virtuelle (ie une classe avec au moins une fonction virtuelle?) doit avoir un destrcteur virtuel type "virtual ~distance()".
mais si je n'est rien à detruire dans ma classe distance???
Cordialement
bonjour
Je crois avoir compris que une classe virtuelle (ie une classe avec au moins une fonction virtuelle?) doit avoir un destrcteur virtuel type "virtual ~distance()".
mais si je n'est rien à detruire dans ma classe distance???
Cordialement
- Une classe virtuelle n'existe pas. On peut parler de classe abstraite, lorsque celle-ci n'est pas instanciable (contient au moins une virtuelle pure, ou constructeurs protégés).
- Il n'est nécessaire de déclarer le destructeur virtuel que si ta classe est utilisée polymorphiquement, c'est-à-dire si tu manipules des dérivées en tant que distance. Si tu ne le fais pas, même si tu n'as rien à détruire dans distance, le constructeur des classes de base ne sera pas appelé.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Merci j'utilisait en effet des classes dérivé.
Merci de m'avoir éclairés!
C'est plus gênant que ça. Ce n'est pas juste qu'un destructeur n'est pas appelé, c'est un comportement indéfini. Il peut se passer n'importe quoi.Envoyé par Laurent Gomila
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager