I found something interesting. The error message says it all. What is the reason behind not allowing parentheses while taking the address of a non-static member function? I compiled it on gcc 4.3.4.
#include <iostream>
class myfoo{
    public:
     int foo(int number){
         return (number*10);
     }
};
int main (int argc, char * const argv[]) {
    int (myfoo::*fPtr)(int) = NULL;
    fPtr = &(myfoo::foo);  // main.cpp:14
    return 0;
}
Error: main.cpp:14: error: ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say '&myfoo::foo'
 
     
     
    