美文网首页
函数指针的使用

函数指针的使用

作者: 雯饰太一 | 来源:发表于2023-06-05 08:03 被阅读0次

    动态选择函数

    //根据不同的mode,来调用不同的类成员函数
    void(TestCls:: * addTarget)() = nullptr;
    addTarget = (addTarget) ? addTarget : (mode == ENUM_A) ? &TestCls::AddTargetFun1 : nullptr;
    addTarget = (addTarget) ? addTarget : (mode == ENUM_B) ? &TestCls::AddTargetFun2 : nullptr;
    

    使用函数映射表,减少if...else...语句

    //构建之前,必须有函数指针的定义才行
    typedef void (DataHandleThread::*pf)(Json::Value&);
    QMap<QString,pf> m_parseFunMap;//建立根据名称查找执行函数的map
    void DataHandleThread::ConfigFunMap()
    {
        //备注:以下反射的建立与使用,只是初级
        m_parseFunMap["beart_jump"]         = &DataHandleThread::beart_jump_response_parse;
        m_parseFunMap["realtime_target"]    = &DataHandleThread::realtime_target_parse;
        m_parseFunMap["get_current_target"] = &DataHandleThread::realtime_target_parse;
    }
    

    相关问题

    类的前向声明如下:

    //无命名空间的写法
    class ClsA;
    
    //有命名空间的写法
    namespace nsp{
        class ClsB;
    }
    

    使用容器之前,通常需要前向生命一下才行,且classstruct不能混用。

    相关文章

      网友评论

          本文标题:函数指针的使用

          本文链接:https://www.haomeiwen.com/subject/khmredtx.html