Member function "callbacks"
class Parrot
{
public:
void Eat()
{
std::cout << "tsk, knick, tsk, knick, ...\n";
}
void Speak()
{
std::cout << "Gerry wanna cracker\n";
}
};
int main()
{
typedef void (Parrot::* TpMemFun)();
TpMemFun pActivity = &Parrot::Eat;
Parrot geronimo;
Parrot * pGeronimo = &geronimo;
(geronimo.*pActivity)(); // "tsk, knick, tsk, knick, ..."
(pGeronimo->*pActivity)(); // "tsk, knick, tsk, knick, ..."
pActivity = &Parrot::Speak;
(geronimo.*pActivity)(); // "Gerry wanna cracker"
}