亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將類成員函數作為回調傳遞?

如何將類成員函數作為回調傳遞?

C++
慕田峪4524236 2019-07-05 14:37:42
如何將類成員函數作為回調傳遞?我使用的API要求我將函數指針作為回調傳遞。我試圖從我的類中使用這個API,但是我得到了編譯錯誤。下面是我從構造器中所做的工作:m_cRedundencyManager->Init(this->RedundencyManagerCallBack);這不編譯-我得到以下錯誤:錯誤8錯誤C 3867:“CLoggersInfra:RedundencyManagerCallBack”:函數調用缺少參數列表;使用‘&CLoggersInfra:RedundencyManagerCallBack’創建指向成員的指針我試著用這個建議&CLoggersInfra::RedundencyManagerCallBack-不適合我對此有何建議或解釋?我使用VS 2008。謝謝!
查看完整描述

3 回答

?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

這不起作用,因為成員函數指針不能像普通函數指針那樣處理,因為它需要一個“this”對象參數。

相反,您可以傳遞一個靜態成員函數,如下所示,這與這方面的正常非會員函數類似:

m_cRedundencyManager->Init(&CLoggersInfra::Callback, this);

該函數可以定義如下

static void Callback(int other_arg, void * this_pointer) {
    CLoggersInfra * self = static_cast<CLoggersInfra*>(this_pointer);
    self->RedundencyManagerCallBack(other_arg);}


查看完整回答
反對 回復 2019-07-05
  • 3 回答
  • 0 關注
  • 841 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號