我要动态生成mfc菜单,动态绑定响应命令。
首先把菜单关键词和函数指针绑定在map中,
再通过关键词找到函数来执行。

#include "stdafx.h"

#include <vector>
#include <map>
#include <string>

using namespace std;

// 声明一个函数指针
int(*pFunc)(int);
int func1(int nIn){return nIn + 1;}
int func2(int nIn){return nIn + 20;}

typedef int(*pInt)(int);//定义别名才能放在vector中

void main()
{
    pFunc = func1;// 把函数名赋给函数指针
    int n = pFunc(1);
    pFunc = &func2;
    n = pFunc(1);
    //vector<int(*pFun)(int)> v_pFunc;//不能这样定义
    //
    vector<pInt> v_pInt;
    v_pInt.push_back(func1);
    v_pInt.push_back(func2);
    int i = v_pInt[0](2);
    i = v_pInt[1](2);
    //
    map<string,pInt> map_pInt;
    map_pInt.insert(pair<string,pInt>("key1",func1));
    map_pInt.insert(pair<string,pInt>("key2",func2));
    int j = map_pInt["key1"](3);
    j = map_pInt["key2"](3);
}

20121028更正vector可以直接放函数指针类型,没理解到位。

//vector只能放类型,不能放函数指针变量名
vector<int(*)(int)> v_pFunc;
v_pFunc.push_back(func1);
v_pFunc.push_back(func2);
int k = v_pFunc[0](5);
k = v_pFunc[1](5);

url:http://greatverve.cnblogs.com/archive/2012/10/27/vector-ptr.html

c++容器(vector|map)中使用函数指针相关推荐

  1. 结构体中定义函数指针

    结构体指针变量的定义,定义结构体变量的一般形式如下: 形式1:先定义结构体类型,再定义变量 struct结构体标识符 { 成员变量列表;- }; struct 结构体标识符 *指针变量名; 变量初始化 ...

  2. 结构体中的函数指针(c语言里一种思想)

    阅读raft源码的时候看到结构体里面的void(*xx) 看不懂这个地方,看上去又像面向对象的类方法,但是这是c语言的结构体啊,了解了这是函数指针.小趴菜~ 一.函数指针 函数指针是指向函数的指针变量 ...

  3. C语言中的指针应用,函数指针,指针函数,结构体中定义函数指针。

    指针函数 指针函数就是一个返回指针的函数,其本质是一个函数,该函数的返回值是一个指针. 声明一个指针函数 int* fun(int x,int y); 例子 typedef struct _Data{ ...

  4. 结构体自定义指针函数c语言,C语言结构体中的函数指针

    C语言结构体中的函数指针 C语言结构体中的函数指针内容由小编收集整理,希望对您的 学习有所帮助!更多内容请关注应届毕业生考试网! 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.所以,标准 ...

  5. 结构体自定义指针函数c语言,详解C语言结构体中的函数指针

    结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.所以,标准C中的结构体是不允许包含成员函数的,当然C++中的结构体对此进行了扩展.那么,我们在C语言的结构体中,只能通过定义函数指针的方式, ...

  6. C语言结构体中定义函数指针详解

    C语言结构体中定义函数指针详解 结构体指针函数应用场景之一--驱动程序编写 结构体的一些基本用法 形式1:先定义结构体类型,再定义变量 形式2:在定义类型的同时定义变量 形式3:直接定义变量,用无名结 ...

  7. c语言 一个函数返回结构体指针,详解C语言结构体中的函数指针

    结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.所以,标准C中的结构体是不允许包含成员函数的,当然C++中的结构体对此进行了扩展.那么,我们在C语言的结构体中,只能通过定义函数指针的方式, ...

  8. c语言中结构体类型定义的函数指针,结构体中定义函数指针

    结构体指针变量的定义 定义结构体变量的一般形式如下:形式1:先定义结构体类型,再定义变量struct 结构体标识符{ 成员变量列表;-};struct 结构体标识符 *指针变量名;变量初始化:stru ...

  9. C语言中的函数指针、函数的直接/间接调用、C# 委托(自定义委托、内置泛型委托、委托的实例化、委托的一般使用(模板方法、回调方法)、泛型委托、多播委托、同步/异步使用委托)

    文章目录 C语言中的函数指针 函数的直接调用与间接调用 Java中没有与委托对应的功能实体 C# 委托 C# 自定义委托类型 C# 内置泛型委托类型 委托的实例化 委托也支持泛型的使用 委托的一般使用 ...

最新文章

  1. 2021高校毕业生薪酬Top100出炉!清华指数TOP,薪酬却排名第二
  2. 学习Html之后总结的超全的思维导图!
  3. python 自定义模块的发布和安装
  4. (转)Http协议经典详解
  5. Xdebug部分配置选项说明
  6. (六)使用Coral USB Accelerator在Raspberry Pi上部署YOLOv5模型
  7. https被修改成http排查过程
  8. 一只火鸡带你了解大数据预测(经典)
  9. docker打包部署flask镜像
  10. matlab里comb用法,comb_comb的意思和用法搭配
  11. 最好的开源网络入侵检测工具
  12. LTE Cat-M1 物联网模块直接连接全球蜂窝网络
  13. 笑一笑-道高一尺魔高一丈
  14. 341.基于高通量测序的微生物组研究技术简介
  15. jquery选择器连续选择_jQuery选择器简介
  16. 每天一练——斐波那契数列前N项之和
  17. iOS开发之谓词Predicate和对象数组的排序
  18. 计算机专业985性价比,十所具性价比的985高校
  19. 【电子学会】2020年06月图形化三级 -- 海底寻宝
  20. 服务器系统盘清理工具,Windows添加磁盘清理工具的方法

热门文章

  1. phpmyadmin的安装和使用
  2. ASP Webshell查***代码的小东东
  3. linux权限bcd码是6,Linux权限管理(1)基本权限
  4. 过滤ilist中的重复数据
  5. anaconda老版本下载的方法
  6. 如何用R来定制个性化PPT
  7. linux curl 命令(转)
  8. 【进阶修炼】——改善C#程序质量(9)
  9. unity3d 中加入�视频
  10. 多文件上传组件FineUploader使用心得