コールバックを関数ポインタに転送したいと思います。そこで、静的 (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)();
}
しかし、コンパイラ エラーが表示されます。「Expression must have (pointer-to)- function type チュートリアルに従い、関数ポインターについて読んだところ、問題なくこのように実行されているようです。理由はありますか?
編集:だから、私は (int*)(void)m_Callback1 を宣言します -Visual Studio はそこに void を必要とします...-次に、引数を指定して registerCallback 関数を呼び出すにはどうすればよいですか?
class1.RegisterCallBack1( ??? - class2::callback -??? );