This was a trick question.  There is actually nothing wrong with this code.  Take a look at this in regards to this type of code:

9.3/9: A member function can be declared (but not defined) using a typedef for a function type.  The resulting member function has exactly the same type as it would have if the function declarator were provided explicitly"

You can see this and the other rules at: Classes 9.3

Yes this is a very simple example of using a function pointer, and it doesn't do much, but this is legitimate code.  There are certainly things you can do to make it better, but that is besides the point.

Hope you enjoyed trying to figure it out.