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