static ではないメンバ関数のアドレスを知りたいのですが、うまく行きません。
やりたいことは、

class A {
public:
void func(){ /* A独自の処理 */ }
void getadr(){ printf("%x\n",&func); }
};
class B : public A {
public:
void func(){ /* B独自の処理 */ }
};

main()
{
A a;
B b;
a.getadr();
b.getadr();
}

こんな感じなのですが、これは func が static ではないためコンパイルエラーになります。
getadr内部を &A::func のようにすればエラーにはなりませんが、
それでは継承クラスから使用した場合に本来の目的を達成できません。
アドバイスお願いします。