typedef int (*healthCalcFunc) (const GameCharacter&);
它引入一個稱爲healthCalcFunc用於其描述了函數指針類型名稱,服用const GameCharacter&
類型的一個參數,並且返回一個int
。
因此,這意味着,如果你的函數爲:
int some_function(const GameCharacter&)
{
//...
}
然後您可以創建一個指向對象,其將指向上面的函數爲:
healthCalcFunc pfun = some_function;
,然後用pfun
代替some_function
爲:
some_function(args); /normal call
pfun(args); //calling using function pointer
//it is exactly same as the previous call
而與此受益方法是,你可以通過周圍pfun
(或some_function
)到其他功能:
void other_function(healthCalcFunc pfun)
{
//..
pfun(args); //invoke the function!
//..
}
healthCalcFunc pfun = some_function;
other_function(some_function);
other_function(pfun);
這裏other_function
將使用函數指針調用該函數。這樣,下次您可以將另一個匹配函數簽名的函數傳遞給other_function
,並且other_function
將調用另一個函數。
重複的問題:http://stackoverflow.com/ questions/4295432/typedef-function-pointer –