国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

c++回調(diào)之利用函數(shù)指針示例

2020-01-26 15:33:19
字體:
供稿:網(wǎng)友

c++回調(diào)之利用函數(shù)指針示例

復制代碼 代碼如下:

#include <iostream>
using namespace std;


/************************************************************************/
/*                下層實現(xiàn): CALLBACK                                        */
/************************************************************************/

typedef void (*CALLBACKFUN)(int a,int b);

class base
{
private:
    int m;
    int n;
    static CALLBACKFUN pfunc;
public:
    base():m(0), n(0){};
    void registercallback(CALLBACKFUN fun,int k,int j);
    void callcallback();
};

CALLBACKFUN base::pfunc=NULL;    /* static初始化 */

// 注冊回調(diào)函數(shù)
void base::registercallback(CALLBACKFUN fun,int k,int j)
{
    pfunc=fun;
    m=k;
    n=j;
}

void base::callcallback()
{
    base::pfunc(m,n);
}

下層定義回調(diào)函數(shù)的時候,需要提供以下幾個接口:

1. 實現(xiàn)注冊接口:提供一個接口給上層,通過該接口,上層注冊回調(diào)實現(xiàn)接口,下層將該實現(xiàn)接口地址傳遞給定義的回調(diào)指針(CALLBACKFUN),該初始化動作是必須的,否則無法實現(xiàn)回調(diào);

2. 觸發(fā)接口:該接口提供觸發(fā)行為,當調(diào)用該接口時,就會觸發(fā)一次函數(shù)回調(diào);

復制代碼 代碼如下:

// cbByfunction.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "cbByfunction.h"

/************************************************************************/
/*                    上層回調(diào)注冊                                        */
/************************************************************************/
void seiya(int a,int b)
{
    cout << "..." << a << "..." << b << endl;
    cout << "this is seiya callback function" <<endl;
}

void zilong(int a,int b)
{
    cout<<a<<endl<<b<<endl;
    cout<<"this is zilong callback function"<<endl;
}

int main(int argc, char* argv[])
{
    // 注冊下層回調(diào)函數(shù)
    base c_base;
    c_base.registercallback(seiya, 5, 6);
    c_base.callcallback();
    c_base.registercallback(zilong, 7, 8);
    c_base.callcallback();
    return 0;
}

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 潮州市| 通山县| 白朗县| 建平县| 宁国市| 南京市| 万载县| 牙克石市| 龙游县| 长治市| 易门县| 沁源县| 东至县| 东山县| 易门县| 岳阳市| 东兴市| 北碚区| 东莞市| 广饶县| 博野县| 芒康县| 广元市| 辉县市| 郸城县| 古田县| 莎车县| 璧山县| 大同县| 普安县| 北海市| 瓦房店市| 石景山区| 阿拉尔市| 若尔盖县| 象山县| 浦城县| 阳西县| 会理县| 周口市| 水城县|