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
Version imprimable
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é.
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.Citation:
Envoyé par Laurent Gomila