Delegation can be done a number of ways. Function pointers are but one. You can use boost::bind/std::bind, or you can use a lambda function, or even a functor. I suggest you google each of those.