C++: Tableau de la fonction de membre de pointeurs vers des fonctions différentes
J'ai une classe A qui contient des fonctions de membre du foo() et bar() qui renvoient un pointeur sur la classe B. Comment puis-je déclarer un tableau contenant les fonctions foo et bar comme une variable membre de la classe A? Et comment dois-je appeler les fonctions dans le tableau?
Vous devez vous connecter pour publier un commentaire.
La fonction de membre de la syntaxe de pointeur est
ReturnType (Class::*)(ParameterTypes...)
, donc par exemple:Voir, par exemple, cette InformIT article pour plus de détails sur les pointeurs pour les membres.
Vous pouvez également regarder dans Coup de pouce.Lier et Coup de pouce.La fonction (ou leur TR1 équivalents) qui vous permettent de lier de manière opaque états-fonction-des pointeurs vers une instance:
Utiliser un tableau en tant que membre, notez que vous ne pouvez pas initialiser les tableaux à l'aide de l'initialiseur de membre de la liste. Ainsi, vous pouvez lui attribuer dans le corps du constructeur:
... ou si vous utilisez un type qui peut effectivement être initialisé comme
std::vector
ouboost::array
:Ce que vous cherchez sont des pointeurs vers des fonctions de membre du. Voici un court exemple qui montre leur déclaration et de leur utilisation:
La C++ FAQ sur les pointeurs vers des fonctions de membre du est l'endroit où j'ai trouvé toutes ces informations.