程序中不可避免的使用函數(shù)指針,各種回調(diào),加強(qiáng)一下理解(一)定義函數(shù)指針
// PFN是函數(shù)指針char (*PFN)(int);
char gpfn(int val){ cout << val << endl; return 1;}
PFN是一個(gè)函數(shù)指針 指向char(*)(int)類型的函數(shù)指針,這種函數(shù)參數(shù)是一個(gè)int,返回類型是一個(gè)char,如果要對(duì)它賦值,需要參數(shù)和返回類型一致 第二行定義了一個(gè)函數(shù)glFun()。該函數(shù)正好是一個(gè)以int為參數(shù)返回char的函數(shù)。我們要從指針的層次上理解函數(shù)——函數(shù)的函數(shù)名實(shí)際上就是一個(gè)指針,函數(shù)名指向該函數(shù)的代碼在內(nèi)存中的首地址。(二)賦值和調(diào)用賦值
這兩種方法都可用,C++primer上有說明
(三)常見的函數(shù)指針的應(yīng)用標(biāo)準(zhǔn)模板庫中的排序啊, 比較啊 都會(huì)常用的函數(shù)指針比如我們定義了結(jié)構(gòu)體 FightAttr記錄了戰(zhàn)斗的一些數(shù)據(jù),比如連擊次數(shù), 戰(zhàn)斗得分... 我們只記錄了每個(gè)人的FightAttr, 如何對(duì)他們排序呢struct FightAttr{ Combo combo; Score score; ....};可以用sort 等排序
sort允許使用自己定義的比較函數(shù)(第三個(gè)參數(shù))
參考blog:
http://www.cnblogs.com/ly4cn/archive/2005/11/28/286185.html
http://ly4cn.cnblogs.com/archive/2005/12/17/299007.html