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

6 c++ function-pointers

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

#include <iostream>
using namespace std;

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

void A::*cb = NULL;

int main()
{
}
Run Code Online (Sandbox Code Playgroud)

g ++输出错误"无法声明指向`void'成员的指针".我假设我需要用括号做一些事情但是void A ::(*cb)= NULL也不起作用.

Kim*_*man 28

我介绍了一个typedef,在我看来它更清晰:

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

  static FPTR cb;
};

A::FPTR A::cb = NULL;
Run Code Online (Sandbox Code Playgroud)

  • +1为typedeffing函数指针.(不应该被枪杀的人,恕我直言;) (2认同)

Goz*_*Goz 11

void (*A::cb)(int a, char c) = NULL;
Run Code Online (Sandbox Code Playgroud)