2009-10-13 9 views
5

Je ne peux pas trouver la syntaxe pour déclarer un pointeur de fonction en tant que membre statique. G ++ génère l'erreur "impossible de déclarer le pointeur sur` void 'membre ". Je suppose que j'ai besoin de faire quelque chose avec des parenthèses mais void A :: (* cb) = NULL ne fonctionne pas non plus.Pointeur de fonction C++ en tant que membre statique

Répondre

27

J'introduit un typedef, ce qui a un peu plus clair, à mon avis:

class A 
{ 
    typedef void (*FPTR)(int a, char c); 

    static FPTR cb; 
}; 

A::FPTR A::cb = NULL; 
+0

'un peu', déclare-t-il modestement! – xtofl

+0

Eh bien, j'essaie! :) –

+2

+1 pour les pointeurs de fonction typedeffing. (ppl qui ne devrait pas être abattu, à mon humble avis;) – Macke

10
void (*A::cb)(int a, char c) = NULL; 
+0

C'est quelque chose de différent: Il est un pointeur de fonction membre. –

+0

hehe ... fonctionne sur ma machine;) – Goz

+0

Je l'ai réparé quand même. – Goz

Questions connexes