Wow! Interesting. Thanks for the enlightening.Not the most useful program ever written, but there you go.
Hold everything. I made a mistake when I was testing your code: I used the pointer to execute the static function, which of course should work without having to create any objects. I don't get any compile errors with your code, but if I add a line in main() to execute the non-static function:
pf1(); //error C2064: term does not evaluate to a function
I need to create an object before I can execute the function:
Feeble aFeeble;
(aFeeble.*pf1)();
I guess that's what you've been saying all along: you can assign pointers to the non-static member functions before objects exist, but you can't execute the function unless you use an object.