Given an example class:
class Fred { public: Fred() { func = &Fred::fa; } void run() { int foo, bar; *func(foo,bar); } double fa(int x,
Non static class member functions have hidden this pointer as an argument.
I think, the syntax (this->*func)(foo,bar) is the way to make compiler understand that it need to add this to the function.