I want to pass a function pointer of my function repaint() which is overloaded in 3 versions. I want to pass the one without any arguments:
void repaint()
I tried:
myObject = new Object(&myclass::repaint);
But the compiler says "I don't know which Version to choose". OK.
Then I tried
myObject = new Object(static_cast<void(*)(void)>(&repaint);
Then I got (sorry for the bad translation):
How to pass it correctly?
Member function pointer and non-member function pointer are not the same thing. The type for member function pointer in your code is not correct, change it to
myObject = new Object(static_cast<void(myclass::*)()>(&myclass::repaint);
~~~~~~~~~
BTW: The void
in parameter list is redundant.