Кроме классических указателей на функции и функциональных объектов, вас могут заинтересовать новые лямбды C ++ 0x.
Вот пример передачи лямбды в функцию таймера.
#include <windows.h>
#include <iostream>
#include <functional>
void onInterval(DWORD interval, std::function<void ()> callback) {
for (;;) {
Sleep(interval);
callback();
}
}
int main() {
onInterval(1000, []() {std::cout<<"Tick! ";});
}