static / non-static members

Dec 7, 2010 at 1:52am
I have a static member function that looks like this:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void whackamole_window::timer(void*){
  if (ttime == 0) {
    Fl::remove_timeout(whackamole_window::timer);
  }
  else {

	cout <<ttime <<"\n";
	whackamole_window::timebox.put(ttime);
	
	ttime -= 1;
	Fl::repeat_timeout(1, whackamole_window::timer);
	return;
  }
}


timebox is a nonstatic member of whackamole

When I run this code I get the following error:

mole111j.cpp:115: member `whackamole_window::timebox' is non-static but
referenced as a static member


The code won't work if I make timebox static. How can I work around this?
I've been told that I could use a pointer but I have no clue how to do that.

Dec 7, 2010 at 4:49am
Why is the method static in the first place? (your method work with the state of the object)
Dec 7, 2010 at 5:24am
It had to be static because I could only get the timer to work if the callback in add_timeout was static.

I managed to solve my problem by using pointers and creating a corresponding non-static member. Thank you for your concern, though.
Topic archived. No new replies allowed.