Pointeur d'appel C vers une fonction membre
L'appel de pointeurs vers des fonctions membres en C nécessite une syntaxe unique en raison de leur nature non statique. Pour invoquer efficacement de telles fonctions, un pointeur this représentant l'objet sur lequel la fonction sera appelée doit être fourni à côté des paramètres nommés.
Pour spécifier des pointeurs de fonction membre dans votre code :
typedef void (Box::*HitTest) (int x, int y, int w, int h);
Ceci définit un type de pointeur de fonction membre pour la méthode HitTest du Classe Box.
Pour ajouter des fonctions membres à une liste :
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); }
Pour appeler un pointeur vers une fonction membre :
(box->*h)(xPos, yPos, width, height);
Dans cet exemple, box représente le pointeur this, h est le pointeur vers la méthode HitTest, et xPos, yPos, width et height sont les paramètres de la fonction.
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!