у меня есть статическая функция-член, которая выглядит следующим образом:Нужна помощь со статическими/не статическими членами
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*);
Поскольку статический члены не могут получить доступ к другим членам класса (за исключением других статических членов), я получаю следующую ошибку:
mole111j.cpp:176: invalid use of member
whackamole_window::m' in static member function mole111j.cpp:177: invalid use of member
whackamole_window::mb' in static member function
Таймер не работает, если я пытаюсь сделать функцию нестатической. Итак, как я могу обойти это и получить доступ к элементам m и mb с помощью таймера?
Извините, моя новичка, но как мне все это сделать? Я как-то знаю, как использовать указатели, но я не понимаю, что вы подразумеваете под литью void * назад – supahot 2010-12-07 01:32:57
`whackamole_window * thisWindow = (whackamole_window *) argPtr;` - где argPtr - это пустота *, которая была передана методу. – davmac 2010-12-10 04:09:39