// 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: '*':在void類型的」非法操作數(__thiscall MyClass的:: *)(無效)常量
錯誤C2064:術語不計算爲函數回吐0個參數
'(T - > *(t-> fPtr))()'我認爲應該可以工作 – KoKuToru 2011-12-21 19:36:21
@KoKuToru:這也是錯誤的。 – Nawaz 2011-12-21 19:37:24
@Nawaz它的工作原理我測試了它。 – KoKuToru 2011-12-21 19:38:15