Bonjour,
J'aimerai savoir comment les méthodes virtuelles sont gérées en C++ surtout lors de l'héritage...
Je sais que lorsqu'une méthode est déclarée virtuelle, le compilateur crée une vtable, un tableau de pointeur de méthodes, dans la classe. Ce que je ne comprends pas, c'est comment le programme "sait", à l’exécution, quel élément de la table représente bien le pointeur vers la méthode appelée...
La seule possibilité que je vois est d'associer à chaque méthode un ID et que la vtable soit donc un tableau associatif ID <-> méthode... mais cela me semble peut efficace.
Quelqu'un sait-il comment cela est réellement implémenté par le compilateur ?
De plus si une classe hérite de deux autres classes avec des méthodes virtuelles, possède-t-elle 2 vtable ?
D'avance, merci
Partager