通過c++示例解釋回調

回調的簡易解釋

簡單來說回調是一種雙向調用模式,例如我們是調用方A,去調用被調方B中的方法x(),處理完成后,被調方會反過來調用我們傳過去的函數(shù)y(),實現(xiàn)我方在開發(fā)中寫的y函數(shù)的功能。

回調的簡易示例

#include <stdio.h>

void firstCalc(int x);
void secondCalc(int x);

int main()
{
    //我方開發(fā)視角,即為用戶層,執(zhí)行輸入?yún)?shù)等動作
    CallBack callback;
    callback.changeNum(1, 2, firstCalc);
    callback.changeNum(1, 2, secondCalc);
    return 0;
}

//開發(fā)處理層,由我們開發(fā)人員來書寫計算邏輯
void firstCalc(int result)
{
    int otherNum = 10;
    printf("result first值為: %d\n", result + otherNum); // 9
}

//開發(fā)處理層,由我們開發(fā)人員來書寫計算邏輯
void secondCalc(int result)
{
    int otherNum = 11;
    printf("result second值為: %d\n", result - otherNum); // -12
}
 

以上的代碼一般是由我方開發(fā)人員寫的。

/*實際開發(fā)中,下面這個類可能是被調方寫的邏輯,會被封裝起來,僅提供接口函數(shù),相當于系統(tǒng)底層。
我們的目的也許是由此得到底層的某些參數(shù),例如length,或許是由底層檢測某種事件,觸發(fā)我們
自己寫的函數(shù),例如系統(tǒng)檢測到點擊事件,就執(zhí)行我們開發(fā)者寫的點擊后的函數(shù)邏輯*/
#include <stdio.h>
typedef void (*NumCalc)(int ); // 定義函數(shù)指針
int changeNum(int x, int y, NumCalc fp);

class CallBack
{
   public:
      double length; 

      int changeNum(int incNum, int decNum, NumCalc fp)
      {
          fp(incNum - decNum);
      }  
};

實際開發(fā)中,上面這個類可能是被調方寫的邏輯,會被封裝起來,僅提供接口函數(shù),相當于系統(tǒng)底層。
我們的目的也許是由此得到底層的某些參數(shù),例如length,或許是由底層檢測某種事件,觸發(fā)我們自己寫的函數(shù),例如系統(tǒng)檢測到點擊事件,就執(zhí)行我們開發(fā)者寫的點擊后的函數(shù)邏輯。這一切即可通過傳遞函數(shù)指針給底層,讓它把我們需要的東西傳給我們。

以上。

我的github傳送地址:https://github.com/JunJieDing666

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,177評論 25 708
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 14,046評論 2 59
  • 去年的此刻我也寫過一篇如何管理你的時間,當時或許是涉世未深,初出牛犢不怕虎,羅列了許多如今看來可笑的計劃。 這一年...
    pain365日閱讀 44,871評論 208 2,192
  • 如果有一天, 我的翅膀消失在天際, 不必去尋找。 你的眼睛看不到那痕跡, 因為, 我已習慣了, 在黑夜里飛行! 在...
    CZP_閱讀 169評論 2 6
  • 基礎營養(yǎng)學第二課01 在我們還是嬰兒的時候,我們只吃母乳,或者配方奶粉。奶粉是因為母乳缺乏不得不用于補充。 由于嬰...
    Amy小倩閱讀 457評論 0 0

友情鏈接更多精彩內容