#include <cstdio>

class ham;
typedef void (ham::*fn)();

class ham {
public:
    fn get_fn() { return &ham::egg; }
private:
    void egg() { puts("hello world"); }
};

int main() {
    ham a;
    fn b = a.get_fn();
    (a.*b)();
}