// class
class MyClass
{
public:
void doIt() const
{
cout << "It works!" << endl;
}
void(MyClass::*fPtr)() const;
};
// main
MyClass *t = new MyClass;
// store function address
t->fPtr = &MyClass::doIt;
(*(t->fPtr))(); // Whats wrong with this line?
fPtrに格納されている関数をどのように呼び出すことができますか?私が試してみると(*(t-> fPtr))();コンパイラは これらのエラーを与える:クラスメンバーとしてのクラスメンバ関数ポインタ
エラーC2171: '*':違法なタイプのオペランドの「無効(__thiscall MyClassの:: *)(無効)constは
エラーC2064:用語は、関数の撮影に評価されませんの0引数
'(トン - > *(t-> fPtr))() '私はうまくいくと思うよ。 – KoKuToru
@KoKuToru:それは間違っている。 – Nawaz
@Nawazそれは私がそれをテストして動作します。 – KoKuToru