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

typedef void (intCB)(int );

我有一个这样声明的类(class)成员:
private:
  intCB m_intCB;

在构造函数的初始化列表中,我想将其初始化为0:
MyClass::MyClass : m_intCB(0)
{
   #ifdef SOMETHING
   m_intCB = &someOtherFunc;
   #endif
}

仅在有特定定义的情况下,我才要将m_intCB设置为它,否则,我想将其保持为0。上面代码的问题是我收到了:
error C2436: 'm_intCB' : member function or nested class in constructor initializer list

我该如何解决?

最佳答案

那不是函数指针,您缺少*。尝试:

typedef void (*intCB)(int);

关于c++ - 错误C2436成员函数或构造函数初始化器列表中的嵌套类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5880715/

10-11 22:49
查看更多