- 388 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 10:25:16 ]
- VC++です。
やりたいことは、あるクラスAに関数ポインタを登録しておいて、そのクラス内から関数ポインタ先の関数を呼び出すという処理です。 そこでA::A(void (*pfunc)(void))というようなコンストラクタを作っておいて、 別のクラスのメンバ関数void B::func(void)のポインタを登録させるべく B *b; new A(&b->func) という書き方をしたら、「C2276:'&':仮想関数のポインタを取ろうとしました。」というエラーが出ます。 調べてみて、放り込みたいメンバ関数の宣言をstaticにしたら解決するとあって実際にそうしたらその部分は通ったのですが、 staticでは静的でないメンバにアクセスできないので困っています。 どなたか静的でないメンバ関数のポインタを関数ポインタに放り込む方法をご教授願います。
|

|