#include <iostream>

class foo
{
public:
    void foo_function() { std::cout << "Foo!" << std::endl;};
};

class bar
{
public:
    foo foo_member;

    void bar_function(foo bar::*p_foo)
    {
        (this->*p_foo).foo_function();
    }
};


int main()
{
    foo foo_obj;
    bar bar_obj;
    typedef foo bar::*p_foo;
    p_foo blah = &bar::foo_member;
    bar_obj.bar_function(blah);
    return 0;
}
