virtual dans une classe fille - C++ - Programmation
Marsh Posté le 24-12-2008 à 12:29:23
Sémantiquement, ça ne change pas le fait que get_type est virtuelle qu'il y ait virtual ou pas, puisque ça dépend de la définition de A::get_type. Mais la répétition permet de le clarifier, de montrer la redéfinition, etc.
Marsh Posté le 30-12-2008 à 17:37:05
en terme de taille de l'éxécutable le fait d'ajouter virtual dans B a un impact?
Marsh Posté le 31-12-2008 à 12:59:35
j'avais cru comprendre, à tort donc, ou mal, que le compilo rajouter dans l'objet un pointeur "VPTR" sur la vtable (avec initialistion dans le constructeur) dès lors qu'il y avait une fonction déclarée virtual dans la classe, ça ne s'applique que lorsque la classe n'est effectivement dérivée donc ?
Marsh Posté le 31-12-2008 à 17:07:32
non mais bon, un elemtent de vtable c'est 4 octets. Va falloir en empiler pas mal avant d'avoir un overhead notable surtout en tenant compte des optimisations au link.
Marsh Posté le 31-12-2008 à 17:55:20
ok
Marsh Posté le 18-01-2009 à 22:08:11
Finalement en essayant ce bout de code, on s'apperçoit que ça ne change rien de rajouter ou non virtual dans une classe fille en terme de taille de l'éxécutable, puisque sauf erreur de ma part à partir du moment ou la fonction est virtual dans la base, la fonction fille hérité de se caractère virtual :
Code :
|
Marsh Posté le 24-12-2008 à 10:03:31
bonjour,
soit le code suivant:
Quel est l'intérêt de déclarer la fonction de la classe B virtual ?
merci