Maison > développement back-end > C++ > Comment appeler et ajouter correctement des pointeurs C aux fonctions membres ?

Comment appeler et ajouter correctement des pointeurs C aux fonctions membres ?

Susan Sarandon
Libérer: 2024-12-07 14:33:12
original
504 Les gens l'ont consulté

How to Correctly Call and Add C   Pointers to Member Functions?

Appel d'un pointeur C vers des fonctions membres

Comprendre la syntaxe appropriée pour appeler des pointeurs vers des fonctions membres en C est crucial. Cette question explore la méthode spécifique pour appeler de tels pointeurs, ainsi que le processus d'ajout de fonctions membres à une liste.

Appel de pointeurs vers des fonctions membres

La question présente un extrait de code tentant d'invoquer des pointeurs vers des fonctions membres en utilisant la syntaxe :

(*h)(xPos, yPos, width, height);
Copier après la connexion

Cependant, la syntaxe correcte nécessite de fournir à la fois les paramètres nommés et le pointeur this. Par conséquent, la ligne corrigée devient :

(box->*h)(xPos, yPos, width, height);
Copier après la connexion

Cela garantit que le bon pointeur this est utilisé lors de l'appel de la fonction membre.

Ajout de fonctions membres à une liste

La question montre également comment ajouter des fonctions membres à une liste. Ici, les pointeurs vers les fonctions membres sont stockés dans une std :: list. Le code ci-dessous illustre le processus :

std::list<HitTest> list;

for (std::list<Box*>::const_iterator i = boxList.begin(); i != boxList.end(); ++i)
{
    Box * box = *i;
    list.push_back(&box->HitTest);
}
Copier après la connexion

Ce code parcourt une liste de pointeurs Box et pousse l'adresse de chaque fonction membre HitTest sur la liste std::list. Chaque fonction membre est représentée par un pointeur vers la fonction membre qui fait référence au pointeur this de l'objet Box spécifique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal