次のような静的メンバー関数があります。
void whackamole_window::showmole(void *){
if (mtime == 0) {
Fl::remove_timeout(whackamole_window::showmole);
}
else {
//...
m(Point(randx*50+25,randy*50+25),randval),
mb(Point(randx*50,randy*50),50,50,"1",cb_addscore)
Fl::check();
Fl::redraw();
mtime -= 3;
Fl::repeat_timeout(3, whackamole_window::showmole);
return;
}
}
メンバー関数は、クラスで次のように定義されています
static void showmole(void*);
静的メンバーはクラスの他のメンバーにアクセスできないため (他の静的メンバーを除く)、次のエラーが発生します。
mol111j.cpp:176:
whackamole_window::m' in static member function mole111j.cpp:177: invalid use of member
静的メンバー関数でのメンバー whackamole_window::mb' の使用が無効です
関数を非静的にしようとすると、タイマーが機能しないようです。では、これを回避し、タイマーを使用して m および mb メンバーにアクセスするにはどうすればよいでしょうか?