2010-01-03 2 views

Répondre

21

Le 'v' signifie 'virtuel'.

8

La vtable est une méthode commune par laquelle les appels de fonction virtuelle sont implémentés. Il contient des pointeurs vers les versions d'instanciation d'une classe particulière de toutes les fonctions virtuelles implémentées par cette classe. Lorsque vous appelez une fonction virtuelle, le compilateur crée le code qui charge l'adresse à partir de la vtable, et les branches à cette adresse.

+3

Techniquement non. La norme ne nécessite pas de vtable. La vtable n'est pas non plus le seul moyen d'implémenter des fonctions virtuelles. Par conséquent, ce n'est pas ainsi que les fonctions virtuelles sont appelées. C'est une technique de mise en œuvre de la façon dont cela pourrait être fait. –

+1

Le PO parlait-il d'un compilateur qui n'utilisait pas vtables? –