#include #include #include using namespace std; string concat( int i, char c, double d ) { stringstream ss; ss << i << '-' << c << '-' << d; return ss.str(); } void main( void ) { string (*funcPtr)(int,char,double); funcPtr = &concat; funcPtr = concat; cout << "output is " << (*funcPtr)(123, '|', 4.56 ) << '\n'; } // output is 123-|-4.56 #if 0 class A { public: static string concat1( int i, char c, double d ) { stringstream ss; ss << i << '-' << c << '-' << d; return ss.str(); } string concat2( int i, char c, double d ) { stringstream ss; ss << i << '-' << c << '-' << d; return ss.str(); } }; void main( void ) { string (*funcPtr)(int,char,double); funcPtr = &A::concat1; cout << "output is " << (*funcPtr)(123, '|', 4.56 ) << '\n'; string (A::*memFuncPtr)(int,char,double); memFuncPtr = &A::concat2; A obj; cout << "output is " << (obj.*memFuncPtr)(456, '#', 78.9 ) << '\n'; } // output is 123-|-4.56 // output is 456-#-78.9 #endif