• 回调函数


    回调函数是你把函数地址传递过去,然后至于什么时候被调用,你并不需要知道,也不由你去调用。

    #include <stdio.h>
    //#include <iostream>
    //using namespace std;

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

    class Example
    {
    private:
        int m;
        int n;
        static CALLBACK func;
        public:
        void register_callback(CALLBACK fun,int k,int j);
        void callcallback();
        void calulate();
        void increase(int start,int stop);
        void decrease(int start,int stop);
    };

    CALLBACK Example::func=NULL;

    void Example::register_callback(CALLBACK fun,int k,int j)
    {
        func=fun;
        m=k;
        n=j;
    }

    void Example::callcallback()
    {
        func(m,n);
    }

    void Example::increase(int start,int stop)
    {
        for(int i= start; i< stop; i++)
            printf("increase i = %d\n", i);    
        
        callcallback();
    }

    void Example::decrease(int start,int stop)
    {
        for(int i= start; i> stop; i--)
            printf("decrease i = %d\n", i);
        
        callcallback();
    }
    void Example::calulate()
    {
        if(m<n)
            increase(m,n);
        else
            decrease(m,n);
    }

    void method_for_call(int a, int b)
    {
        printf("\nsucceed finished the calulate work from %d to %d \n\n",a, b);
    }

    int main(void)
    {
        Example ex;
        ex.register_callback(method_for_call,2,13);
        ex.calulate();
        printf("1------------ 1\n\n");    

        ex.register_callback(method_for_call,23,16);      
        ex.calulate();
        printf("2------------2\n\n");    

    EOF

  • 相关阅读:
    SQL2012 创建备份计划
    rem 移动端适配
    sql server 表结构 导出 到excel
    针对OAuth2的CSRF攻击
    xss、SQL测试用例小结
    svn报错:[Previous operation has not finished; run 'cleanup' if it was interrupted] 的排错过程
    并发数与在线用户之间的关系
    loadrunner--常用函数列表【转】
    LR参数化类型为file显示大于100数据方法
    loadrunner11--集合点(Rendezvous )菜单是灰色不能点击
  • 原文地址:https://www.cnblogs.com/no7dw/p/2807339.html
Copyright © 2020-2023  润新知