C ++函数指针作为静态成员

时间:2009-10-13 13:14:04

标签: c++ function-pointers

我无法想出将函数指针声明为静态成员的语法。

#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也不起作用。

2 个答案:

答案 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;