Partager via


Tables de fonctions virtuelles

[La fonctionnalité associée à cette page, gestionnaires de fichiers et de flux personnalisés, est une fonctionnalité héritée. Il a été remplacé par classe MediaStreamSource. classe MediaStreamSource a été optimisée pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise classe MediaStreamSource au lieu d'gestionnaires de fichiers et de flux personnalisés, le cas échéant. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Une table de fonctions virtuelles est un tableau de pointeurs vers les méthodes qu’un objet prend en charge. Si vous utilisez C, un objet apparaît sous la forme d’une structure dont le premier membre est un pointeur vers la table de fonctions virtuelles (lpVtbl) ; autrement dit, le premier membre pointe vers un tableau contenant des pointeurs de fonction. Les méthodes prennent tous un pointeur vers la table de fonctions comme premier paramètre. Ainsi, l’exemple suivant appelle la méthode Read d’un objet pStream :

pStream->lpVtbl->Read(pStream, parameters) 
 

En C+ +, le pointeur vers la table de fonctions virtuelles, le ce pointeur, est implicite. L’exemple suivant équivaut à l’exemple précédent lors de l’utilisation de C+ + :

pStream->Read(parameters)