class tExampleEventRegisterer { public: int start_function(void) { printf("starting :O\n"); return 0; } int stop_function(void) { printf("stopping :O\n"); return 0; } typedef int (tExampleEventRegisterer::*mtype)(void); mtype func_array[10]; tExampleEventRegisterer(void); }; tExampleEventRegisterer::tExampleEventRegisterer(void) { func_array[0] = &tExampleEventRegisterer::start_function; func_array[1] = &tExampleEventRegisterer::stop_function; } int main() { tExampleEventRegisterer tEERInstance; for (int i=0; i<2;i++){ //(tEERInstance.*(func_array[0]))(); tExampleEventRegisterer::mtype f = tEERInstance.func_array[0]; (tEERInstance.*f)(); } return 0; }