412 :
デフォルトの名無しさん:
仮想関数のアドレスを得たいのですが、なぜかできません。
単に表示させるのはできるのですが、void型ポインタなどに入れることができません。
どうキャストすればいいのでしょうか?
#include <stdio.h>
class X
{
public:
virtual func() = 0;
};
class Y : public X
{
public:
virtual func(){ return 1; };
};
void main()
{
X *px = new Y;
printf("%08X\n", &px->func); // これは一応できる
void *pv = (void *)&px->func; // これはエラー
int i = (int)&px->func; // これもエラー
}