博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
map 与 类成员函数指针
阅读量:6343 次
发布时间:2019-06-22

本文共 1117 字,大约阅读时间需要 3 分钟。

  hot3.png

#include 
#include
#include
using namespace std;class Test;typedef void (Test::*pFunc)(int);class Test { public: Test(const std::string &name); void f1(int); void f2(int); void f3(int); void display(int i); private: static std::map
num2func; std::string classname;};std::map
Test::num2func;Test::Test(const std::string &name){ classname = name; if (num2func.empty()) { num2func[1] = &Test::f1; num2func[2] = &Test::f2; num2func[3] = &Test::f3; }}void Test::display(int i){ if (num2func.find(i) != num2func.end()) { (this->*num2func[i])(i); }}void Test::f1(int n) { cout << classname << "\t" << n << endl; } void Test::f2(int n) { cout << classname << "\t" << n << endl; } void Test::f3(int n) { cout << classname << "\t" << n << endl; } int main(int argc, char *argv[]){ Test t1("t1"); Test t2("t2"); t1.display(1); t2.display(2); return 0;}

编译输出:

t1	1t2	2

 

转载于:https://my.oschina.net/tsh/blog/1608699

你可能感兴趣的文章
HttpServer发送数据到kafka
查看>>
phpcms站---去除域名绑定目录中的HTML
查看>>
2017-5-3 打印控件、MDI 窗体容器
查看>>
20155303 2016-2017-2 《Java程序设计》第九周学习总结
查看>>
一次很失败的抄底
查看>>
数据结构C++(10)二叉树——链表实现(linkBinaryTree)
查看>>
利用Condition实现多线程交替执行
查看>>
里氏替换原则(设计模式原则2)
查看>>
lamp一键安装
查看>>
解决“iOS 7 app自动更新,无法在app中向用户展示更新内容”问题
查看>>
OpenCV——Haar-like特征
查看>>
HttpWebResponse发送post请求并接收
查看>>
python 相对路径和绝对路径的区别
查看>>
Day36 python基础--并发编程基础5
查看>>
《Python从小白到大牛》第6章 数据类型
查看>>
三层架构的是与非
查看>>
lucene bug的报告经历
查看>>
火狐访问HTTPS网站显示连接不安全的解决方法
查看>>
防火墙(一)主机型防火墙
查看>>
基于哈夫曼编码的压缩算法的实现
查看>>