// // main.cpp // FunctionPointers // // Created by Robert Metcalfe on 16/05/13. // Copyright (c) 2013 Robert Metcalfe. All rights reserved. // #include #include class FunctionPointers { public: int intvalue = 1; double doublevalue = 2.1; long longvalue = 3; void function1() { std::stringstream out; out << intvalue; std::cout << out.str() << std::endl; } void function2() { std::stringstream out; out << doublevalue; std::cout << out.str() << std::endl; } void function3() { std::stringstream out; out << longvalue; std::cout << out.str() << std::endl; } typedef void (FunctionPointers::*function_t)(); static const function_t funcArr[3]; }; const FunctionPointers::function_t FunctionPointers::funcArr[3] = { &FunctionPointers::function1, &FunctionPointers::function2 , &FunctionPointers::function3 }; int main() { FunctionPointers my_FunctionPointers; for (int i = 0; i < 3; i++) { std::mem_fun(FunctionPointers::funcArr[i])(&my_FunctionPointers); my_FunctionPointers.intvalue++; my_FunctionPointers.doublevalue++; my_FunctionPointers.longvalue++; } return 0; }