Pour une classe définie comme suit :
1 2 3
| class c {
int f1(float x);
} |
Tu peut définir un type pointeur sur fonction de la classe c
renvoyant un int et accéptant un paramètre float (c'est pour l'exemple),
en écrivant :
typedef int (c::*f_ptr_t)(float x);
Ensuite tu définit une variable pointeur :
Puis tu affecte la variable à la bonne fonction :
Ensuite, pour appeller la fonction, il faut une instance
concrète de c :
Enfin, tu appelles la fonction via le pointeur par :
Note : si obj n'est pas elle même un pointeur, tu fait :
1 2
| c obj2();
obj2.*f_ptr(3.14); |
Partager