問題: 非仮想関数なら関数ポインタでいいけど…
struct C {
virtual void func() { puts("C"); }
};
struct D : public C {
virtual void func() { puts("D"); }
};
int main() {
C* c = new D();
void (C::*mp)() = &C::func;
(c->*mp)(); // D::func
}