c++中由于函數(shù)調(diào)用時隱式增加了this指針,所以在callback調(diào)用時導(dǎo)致參數(shù)個數(shù)不一致而出錯。
成員函數(shù)作為回調(diào),可以采用static的方式傳遞。因?yàn)閟tatic沒有使用this。
由于使用static所以在回調(diào)函數(shù)中
不能訪問類的非static成員,所以需要為類增加一個指向自身的指針。
如:
1
static IMainLoop* pThis;//指向自身的指針,因?yàn)閟tatic不能訪問非靜態(tài)變量,所以通過本指針調(diào)用非靜態(tài)變量。
注意使用這個指針前需要
全局初始化。
格式為:類型 限定符::成員=值
如:
1
IMainLoop* BasicMainLoop::pThis =0;//需要全局定義以后才能使用靜態(tài)成員
posted on 2009-11-22 23:17
納蘭伴月 閱讀(816)
評論(0) 編輯 收藏 引用 所屬分類:
c++ 技巧