通過(guò)c++示例解釋回調(diào)

回調(diào)的簡(jiǎn)易解釋

簡(jiǎn)單來(lái)說(shuō)回調(diào)是一種雙向調(diào)用模式恨课,例如我們是調(diào)用方A羔杨,去調(diào)用被調(diào)方B中的方法x(),處理完成后豁鲤,被調(diào)方會(huì)反過(guò)來(lái)調(diào)用我們傳過(guò)去的函數(shù)y()秽誊,實(shí)現(xiàn)我方在開(kāi)發(fā)中寫(xiě)的y函數(shù)的功能。

回調(diào)的簡(jiǎn)易示例

#include <stdio.h>

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

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

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

//開(kāi)發(fā)處理層楣号,由我們開(kāi)發(fā)人員來(lái)書(shū)寫(xiě)計(jì)算邏輯
void secondCalc(int result)
{
    int otherNum = 11;
    printf("result second值為: %d\n", result - otherNum); // -12
}
 

以上的代碼一般是由我方開(kāi)發(fā)人員寫(xiě)的最易。

/*實(shí)際開(kāi)發(fā)中,下面這個(gè)類(lèi)可能是被調(diào)方寫(xiě)的邏輯炫狱,會(huì)被封裝起來(lái)藻懒,僅提供接口函數(shù),相當(dāng)于系統(tǒng)底層视译。
我們的目的也許是由此得到底層的某些參數(shù)嬉荆,例如length,或許是由底層檢測(cè)某種事件憎亚,觸發(fā)我們
自己寫(xiě)的函數(shù)员寇,例如系統(tǒng)檢測(cè)到點(diǎn)擊事件,就執(zhí)行我們開(kāi)發(fā)者寫(xiě)的點(diǎn)擊后的函數(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);
      }  
};

實(shí)際開(kāi)發(fā)中第美,上面這個(gè)類(lèi)可能是被調(diào)方寫(xiě)的邏輯蝶锋,會(huì)被封裝起來(lái),僅提供接口函數(shù)什往,相當(dāng)于系統(tǒng)底層扳缕。
我們的目的也許是由此得到底層的某些參數(shù),例如length别威,或許是由底層檢測(cè)某種事件躯舔,觸發(fā)我們自己寫(xiě)的函數(shù),例如系統(tǒng)檢測(cè)到點(diǎn)擊事件省古,就執(zhí)行我們開(kāi)發(fā)者寫(xiě)的點(diǎn)擊后的函數(shù)邏輯粥庄。這一切即可通過(guò)傳遞函數(shù)指針給底層,讓它把我們需要的東西傳給我們豺妓。

以上惜互。

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市琳拭,隨后出現(xiàn)的幾起案子训堆,更是在濱河造成了極大的恐慌,老刑警劉巖白嘁,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坑鱼,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡絮缅,警方通過(guò)查閱死者的電腦和手機(jī)鲁沥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)呼股,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人画恰,你說(shuō)我怎么就攤上這事卖怜。” “怎么了阐枣?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)奄抽。 經(jīng)常有香客問(wèn)我蔼两,道長(zhǎng),這世上最難降的妖魔是什么逞度? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任额划,我火速辦了婚禮,結(jié)果婚禮上档泽,老公的妹妹穿的比我還像新娘俊戳。我一直安慰自己,他們只是感情好馆匿,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布抑胎。 她就那樣靜靜地躺著,像睡著了一般渐北。 火紅的嫁衣襯著肌膚如雪阿逃。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,268評(píng)論 1 309
  • 那天赃蛛,我揣著相機(jī)與錄音恃锉,去河邊找鬼。 笑死呕臂,一個(gè)胖子當(dāng)著我的面吹牛破托,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播歧蒋,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼土砂,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了疏尿?” 一聲冷哼從身側(cè)響起瘟芝,我...
    開(kāi)封第一講書(shū)人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎褥琐,沒(méi)想到半個(gè)月后锌俱,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡敌呈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年贸宏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了造寝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吭练,死狀恐怖诫龙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鲫咽,我是刑警寧澤签赃,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站分尸,受9級(jí)特大地震影響锦聊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜箩绍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一孔庭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧材蛛,春花似錦圆到、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至陨簇,卻和暖如春吐绵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背河绽。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工己单, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人耙饰。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓纹笼,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親苟跪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子廷痘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,288評(píng)論 25 707
  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料件已? 從這篇文章中你...
    hw1212閱讀 12,744評(píng)論 2 59
  • 去年的此刻我也寫(xiě)過(guò)一篇如何管理你的時(shí)間笋额,當(dāng)時(shí)或許是涉世未深,初出牛犢不怕虎篷扩,羅列了許多如今看來(lái)可笑的計(jì)劃兄猩。 這一年...
    pain365日閱讀 44,732評(píng)論 208 2,192
  • 如果有一天, 我的翅膀消失在天際, 不必去尋找枢冤。 你的眼睛看不到那痕跡鸠姨, 因?yàn)椋?我已習(xí)慣了, 在黑夜里飛行淹真! 在...
    CZP_閱讀 143評(píng)論 2 6
  • 基礎(chǔ)營(yíng)養(yǎng)學(xué)第二課01 在我們還是嬰兒的時(shí)候讶迁,我們只吃母乳,或者配方奶粉核蘸。奶粉是因?yàn)槟溉槿狈Σ坏貌挥糜谘a(bǔ)充巍糯。 由于嬰...
    Amy小倩閱讀 431評(píng)論 0 0