typedef avec fonction membre
Bonjour!
Je ne comprends pas pourquoi cet exemple ne marche pas. Comment devrais-je faire cela selon vous?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
class A
{
public:
void f(){}
};
int main(int argc,char* argv[],char* envp[])
{
typedef void (A::*FCT)();
FCT fct = A::f;
fct();
} |
Erreur de compilation à la ligne fct():
error C2064: le terme ne correspond pas à une fonction qui prend les arguments 0
Merci d'avance
Re: typedef avec fonction membre
pour compléter la reponse de JolyLoic j'ajouterai qu'il faut déclarer (ou créer) une instance car la fonction f ne peut être appelée si ce n'est par une instance.
Code:
1 2 3 4 5 6 7 8
|
int main(int argc,char* argv[],char* envp[])
{
typedef void (A::*FCT)();
A a;
FCT fct = &A::f;
(&a->*fct)();
} |