鍋あり谷あり

テーマを決めずに適当に書いています。

やっぱりわかってないような気がする C++

プログラミングと無関係な話題なのに、いつもリファが多いのは関数的なアンテナ。
申し訳ないようなそうでもないような。
で。
久々にプログラミングの話題。
でも、関数的じゃなくて C++

まずはソース:

struct A{
  virtual void foo(){  puts( "A::foo" );  }
};

struct B : public A{
  virtual void foo(){  puts( "B::foo" );  }
};

void test(){
  B b;
  A & a = b;
  void (A::*hoge)();
  //略。
}

で。この状態で、(a.*hoge)() が、a.A::foo() になるように、hoge を設定したい。
のだが。
どうも、そういう値に hoge を設定する方法はないような気がする。

a.A::foo() と書けば呼べるのに、その関数のアドレスが取れないなんて。

それとも、私がメンバ関数へのポインタの文法をわかってないだけ??

#写真と本文は関係ありません。