我无法想出将函数指针声明为静态成员的语法。
#include <iostream>
using namespace std;
class A
{
static void (*cb)(int a, char c);
};
void A::*cb = NULL;
int main()
{
}
g ++输出错误“无法声明指向`void'成员的指针”。我假设我需要用括号做一些事情但是void A ::(* cb)= NULL也不起作用。
答案 0 :(得分:28)
我介绍了一个typedef,在我看来它更清晰:
class A
{
typedef void (*FPTR)(int a, char c);
static FPTR cb;
};
A::FPTR A::cb = NULL;
答案 1 :(得分:11)
void (*A::cb)(int a, char c) = NULL;