Appel d'un pointeur vers des fonctions membres en C
En C, les pointeurs vers des fonctions membres constituent un moyen pratique d'invoquer dynamiquement des méthodes sur des objets. Cependant, leur syntaxe peut être difficile.
Syntaxe d'appel de pointeurs vers des fonctions membres
Pour appeler un pointeur vers une fonction membre, la syntaxe suivante est utilisée :
(object->*pointer_variable)(params)
où :
Exemple de syntaxe
Considérez l'extrait de code suivant :
typedef void (Box::*HitTest) (int x, int y, int w, int h); for (std::list<HitTest>::const_iterator i = hitTestList.begin(); i != hitTestList.end(); ++i) { HitTest h = *i; (box->*h)(xPos, yPos, width, height); }
Dans ce Par exemple, une liste de pointeurs vers les fonctions membres HitTest est itérée. Chaque pointeur est extrait de la liste et invoqué en fournissant le pointeur de boîte comme ceci.
Ajout de fonctions membres à une liste de pointeurs
Pour ajouter des fonctions membres à une liste de pointeurs, la syntaxe suivante peut être utilisée :
list.push_back(&box->HitTest);
Ce code pousse le pointeur vers la fonction membre HitTest de l'objet box dans la liste.
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!