<< 9/25 >>
First Last

メンバ関数へのポインタ

問題: 非仮想関数なら関数ポインタでいいけど…

 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
 }