错误C2436成员函数或构造函数初始化列表中的嵌套类

Geo*_*Geo 1 c++ function-pointers

我在头文件中声明了一个函数指针,如下所示:

typedef void (intCB)(int );
Run Code Online (Sandbox Code Playgroud)

我有一个像这样声明的类成员:

private:
  intCB m_intCB;
Run Code Online (Sandbox Code Playgroud)

在我的构造函数的初始化列表中,我想用0初始化它:

MyClass::MyClass : m_intCB(0)
{
   #ifdef SOMETHING
   m_intCB = &someOtherFunc;
   #endif
}
Run Code Online (Sandbox Code Playgroud)

只有在特定的定义到位时,我想将m_intCB设置为它,如果不是我想将它保持为0.上面代码的问题是我收到:

error C2436: 'm_intCB' : member function or nested class in constructor initializer list
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

CB *_*ley 7

这不是一个函数指针,你错过了一个*.尝试:

typedef void (*intCB)(int);
Run Code Online (Sandbox Code Playgroud)