C++怎么初始化类的static函数指针?

假如有一个类如下:

class Base{
private:
      static void (*func)(int a,int b);

      static void set(int a,int b);
}

我要怎么初始化这个指针,让他指向static的set函数

void (*Base::func)(int, int) = &foo;

"&foo"可以替换为你想要的函数指针。
简单结论:static的初始化,需要在类外完成,写在定义文件(不是声明!)中,也就是写在.cpp/.cc文件而非.h/.hh/.hpp文件中。只要在声明的基础上,在变量名前加上“类名::”就可以,你的例子中,声明的变量名为func,类名是Base,直接复制func声明后把func改成Base::func就可以。
特殊地,在现代C++,constexpr static可以直接在声明上初始化:

// 类内
constexpr static int x = 10;
// 不是常量的话不能这么写

首先你要用这个指针定义一个变量吧