zoukankan      html  css  js  c++  java
  • 回调函数的代码示例

    #include "stdio.h"
    
    typedef void (*Fun)(char *ch1, char* ch2);    //函数指针类型:指向参数为(void *p, char *ch),返回值为void *的函数
    
    //外部宿主函数
    void GetCallBack(Fun fun)//这里是用一个外部函数来展示调用方的,此时回调函数fun是在函数里;
                               //当然也可以定义一个别的类,然后把回调函数传给成员变量.
    {     
        //也可以加一些判断条件
    
        fun("This is ", "fCallBack");//!!!此处是在调用回调函数
    }
    
    class A
    {
    public:
        A(){};
        ~A(){};
        static void fCallBack(char *ch1, char *ch2)
        {
            printf("%s%s
    ",ch1, ch2);
        }
        
        void Test()
        {                           //把函数名当做参数,这里相当于设置回调,把回调函数传递给上层.
            GetCallBack(fCallBack);//这里fCallBack声明为static,所以此处可以直接使用.
        }
    };
    
    int main()
    {
        A a;
        a.Test();
        return 0;
    }
    
    #include
    "stdio.h" typedef void (*Fun)(char *ch1, void *p); //函数指针类型:指向参数为(void *p, char *ch),返回值为void *的函数 //外部宿主函数 void GetCallBack(Fun fun, void *p) { fun("test", p); } class A { public: A(){}; ~A(){}; static void fCallBack(char *ch1, void *p) { A *pInstance = (A*)p; printf("%s%s ",ch1); } void Test() { GetCallBack(fCallBack, this);//传点别的参数. } }; int main() { A a; a.Test(); return 0; }
    新战场:https://blog.csdn.net/Stephen___Qin
  • 相关阅读:
    取消浏览器默认行为
    BootStrap基础
    JavaScript基础
    HTML和CSS基础
    03JDBC
    MySQL
    NER-BiLSTM+CRF
    pytroch-Dataset/DataLoader/collate_fn/pad_sequence方法介绍
    pytorch-LSTM()简单介绍
    NER-使用kashgari中的Bert+BiLSTM+CRF
  • 原文地址:https://www.cnblogs.com/Stephen-Qin/p/11878819.html
Copyright © 2011-2022 走看看