3
我在這裏尋找幫助。指向類函數的指針
我的課
LevelEditor
具有的功能是這樣的:
bool SetSingleMast(Game*, GameArea*, GameArea*, vector<IShip*>*);
bool SetDoubleMast(Game*, GameArea*, GameArea*, vector<IShip*>*);
...
在main.cpp中,我想使指針關卡編輯器對象的函數的數組。我在做這樣的事情:
bool (*CreateShips[2])(Game*, GameArea*, GameArea*, vector<IShip*>*) =
{LevelEdit->SetSingleMast, LevelEdit->SetDoubleMast, ...};
但它給我一個錯誤:
error C2440: 'initializing' : cannot convert from 'overloaded-function' to
'bool (__cdecl *)(Game *,GameArea *,GameArea *,std::vector<_Ty> *)'
with
[
_Ty=IShip *
]
None of the functions with this name in scope match the target type
我甚至不知道這是什麼意思。有人能幫助我嗎?
指向函數的指針與指向_member_函數的指針不同。我建議你閱讀['std :: function'](http://en.cppreference.com/w/cpp/utility/functional/function)和['std :: bind'](http:// en。 cppreference.com/w/cpp/utility/functional/bind) – 2013-05-03 11:56:17
你不能有指向特定對象函數的指針,而是指向類的函數(方法) - 「LevelEditor :: SetSingleMast」。 – 2013-05-03 11:56:25
並使用typedef! – jrok 2013-05-03 11:56:46