2009-10-13 8 views
5

Nie mogę określić składni, aby zadeklarować wskaźnik funkcji jako statyczny element członkowski.Wskaźnik funkcji C++ jako statyczny element członkowski

#include <iostream> 
using namespace std; 

class A 
{ 
    static void (*cb)(int a, char c); 
}; 

void A::*cb = NULL; 

int main() 
{ 
} 

g ++ wyprowadza błąd "nie można zadeklarować wskaźnika do elementu" void ". Zakładam, że muszę coś zrobić z nawiasami, ale pustka A :: (* cb) = NULL też nie działa.

Odpowiedz

27

wprowadziłem typedef, co czyniło go nieco jaśniejsze moim zdaniem:

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

    static FPTR cb; 
}; 

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

"nieco", deklaruje skromnie! – xtofl

+0

Cóż, próbuję! :) –

+2

+1 dla wskaźników funkcji typinguffing. (ppl kto nie powinien być postrzelony, IMHO;) – Macke

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

To coś innego: Jest to wskaźnik funkcji członka. –

+0

hehe ... działa na mojej maszynie;) – Goz

+0

Naprawiłem to tak czy inaczej. – Goz