を関数ポインタを呼び出そうとするとき、私はC++のメンバ関数への関数ポインタを使用してメンバ関数を呼び出す必要があるが、私はここでガットは、メンバ関数への
te5.cc:22:14: error: must use ‘.*’ or ‘->*’ to call pointer-to-member function in ‘fp (...)’, e.g. ‘(... ->* fp) (...)’
b.*fp(100);
エラーをコンパイルしましたエラーをコンパイルしたコードスニペットです。どのようにそれを動作させるためにどのようなアイデア?
#include <stdio.h>
#include <string>
#include <stdio.h>
#include <string.h>
class A {
public:
void dum1(int a) { printf("A::dum1(%d)\n", a);}
virtual void dum(int a) { printf("A::dum(%d)\n", a);};
};
class B : public A {
public:
B() {
}
void dum(int a) { printf("B::dum(%d)\n", a);}
};
typedef void (A::*RUNFUNC)(int a);
RUNFUNC fp = &A::dum; //, &A::dum};
int main (int argc, char *argv[]) {
B b;
b.*fp(100);
return 0;
}
「実際には何ですか? –
それはちょうど整数です。特別な意味はありません。 – packetie
'RUNFUNC'は何を期待していますか? –