【发布时间】:2012-05-05 11:31:56
【问题描述】:
我想将回调转发给函数指针。所以我声明了一个静态(int*)m_pointer1,以及一个方法void RegisterCallback1((int*)fct)
在class1.h中:
public:
int RegisterCallback1( int (*fct) );
private:
static int (*m_Callback1);
在class1.cpp中:
int class1::RegisterCallback1( int (*fct) )
{
m_Callback1= fct;
}
然后,我想将回调转发到函数指针:
void class1::Callback1()
{
(*m_Callback1)();
}
但我得到一个编译器错误“表达式必须具有(指向)-函数类型 我已经按照教程阅读并阅读了函数指针,他们似乎这样做没有任何问题。任何想法为什么?
编辑: 所以,我声明 (int*)(void)m_Callback1 -Visual Studio 需要一个 void...- 那么如何调用带有参数的 registerCallback 函数呢?
class1.RegisterCallBack1( ??? - class2::callback -??? );
【问题讨论】:
标签: c++ pointers static function-pointers