zoukankan      html  css  js  c++  java
  • C++ 函数指针

    //c++中静态方法的函数指针
    #include <stdio.h>
    
    class CEventTest
    {
    public:
        //定义静态方法
        static int handle_input(int fd)
        {
            return fd;
        }
    };
    
    //静态方法的函数指针调用
    int upcall(int (*callback)(int), int handle)
    {
        int result = 0;
    
        result = callback(handle);
    
        printf("result is [%d] .
    ", result);
    
        return 0;
    }
    
    void test()
    {
        int (*cb)(int);         //定义静态方法的函数指针变量cb,不需要指明类名
    
        //静态方法赋值给函数指针变量
        cb = CEventTest::handle_input;
    
        //以函数指针方法调用实例方法
        upcall(cb, 2);
    }
    
    int main()
    {
        test();
        getchar();
        return 0;
    }
    //c++中实例方法的函数指针
    #include <stdio.h>
    
    class CEventTest
    {
    public:
        //定义实例方法
        int handle_input(int fd)
        {
            return fd;
        }
    };
    
    //实例方法的函数指针调用
    int upcall(CEventTest *event_handler, int (CEventTest::*callback)(int), int handle)
    {
        int result = 0;
        //(event_handler->*callback)
        /*
        (event_handler->*callback):类的实例方法的函数指针使用,()是必须的
        */
        result = (event_handler->*callback)(handle);
    
        printf("result is [%d] .
    ", result);
    
        return 0;
    }
    
    void test()
    {
        int (CEventTest::*cb)(int);         //定义实例方法的函数指针变量cb
        //注意:实例方法的函数指针必须是(CEventTest::*cb),不可以只写int (*cb)(int);
        CEventTest *obj = new CEventTest;   //定义CEventTest实体对象
    
        //实例方法赋值给函数指针变量
        cb = &CEventTest::handle_input;
    
        //以函数指针方法调用实例方法
        upcall(obj, cb, 2);
    }
    
    int main()
    {
        test();
        getchar();
        return 0;
    }
  • 相关阅读:
    codeforces #330 div2
    codeforces #332 div2
    Codeforces Round #331 (Div. 2)C. Wilbur and Points
    poj 01背包
    zoj 1200 Mining
    nginx反向代理与负载均衡
    springcloud----config分布式配置中心
    springcloud--zuul 网关
    springcloud ----Hystrix熔断器
    docker私有镜像仓库harbor搭建和配置
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/10187379.html
Copyright © 2011-2022 走看看