関数を別の関数にパラメーターとして渡そうとしていますが、両方とも同じクラスのメンバー関数になっています。
奇妙なエラーが発生し、何が問題なのかわかりません。
ここに私の機能があります:
void myClass::functionToPass()
{
// does something
}
void myClass::function1(void (*passedFunction)())
{
(*passedFunction)();
}
void myClass::function2()
{
function1( &myClass::functionToPass );
}
ただし、次のエラーが発生します。
cannot convert parameter 1 from 'void(__thiscall myClass::*) (void)'
to 'void(__cdecl*)(void)'
それで、何が得られますか?これを機能させるために、あらゆるバリエーションを試したような気がします。メンバー関数に関数ポインタを渡すことさえできますか? どうすればこれを機能させることができますか?
注: functionToPass を static にすることは、実際には有効なオプションではありません。