tu peux tout à fait faire un pointeur de fonction membre, le type associé est celui-ci :
Rtype (Classe::*)(Params)
exemple pour une fonction membre de la classe A, prenant une référence constante de string et un int en paramètres et retournant un booléen :
bool (A::*)(const string&, int)
ensuite, pour l'appeller, il te faut une instance de la classe et le pointeur s'appelle avec .* ou ->* (dans le cas d'un pointeur)
exemple :
1 2 3 4 5 6 7 8 9 10 11
| void func(A& a, bool (A::a_func)(const string&, int), const string& str, int i)
{
a.*a_func(str, i);
}
// ou
void func(A* a, bool (A::a_func)(const string&, int), const string& str, int i)
{
a->*a_func(str, i);
} |
Partager