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);
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);
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); }
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!