博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++里的函数指针
阅读量:5995 次
发布时间:2019-06-20

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

今天在写一个小功能的时候,写了三个接口函数,结果代码基本类似,只是其中调用的函数不一样,而且这几个调用函数的声明是完全一样的。

根据里的rules of three,应该得抽象一下了。。。

最直接的想法就是抽出一个共用函数,三个接口函数调用这个共用函数,通过传入不同的函数指针,来实现不同的功能。结果写着写着忘了函数指针怎么写了。。。人老了就是不行了,google吧。

 

网上关于函数指针的博文很多,其中我只需要如何定义和使用就OK了,所以下面就胡乱写个示例记在这里:

// 功能函数 void addPost(NodeObj* node)  {    node->name += "_post";  } void addPrefix(NodeObj* node)  {
node->name = "pre_" + node->name; } class NodeSet{ public: void doWork( void (*func)(NodeObj*) ) { NodeObj* node = nodeSet->head(); for (int i=0; i
size(); i++) { func(node); node = node->next(); } } // 接口函数 void addPostName() { doWork(addPost); } void addPrefixName() { doWork(addPrefix); } protected: NodeObjSet* nodeSet;};

 

转载于:https://www.cnblogs.com/chaoswong/archive/2013/05/03/3056334.html

你可能感兴趣的文章
银行家算法
查看>>
react-native run-android error: unknown host service
查看>>
简易RPC框架-上下文
查看>>
26.使用IntelliJ IDEA开发Java Web项目时,修改了JSP后刷新浏览器无法及时显示修改后的页面...
查看>>
自定义ViewGroup
查看>>
25.管道流
查看>>
2017-2018:时间戳
查看>>
rsync(六)命令中文手册
查看>>
php实现 明明的随机数
查看>>
Guava中针对集合的 filter和过滤功能
查看>>
小程序顶部导航栏的自定义
查看>>
ZooKeeper系列(3):znode说明和znode状态
查看>>
Java Arrays.sort源代码解析
查看>>
使用buildroot创建自己的交叉编译工具链【转】
查看>>
使用superlance插件增强supervisor的监控能力
查看>>
Dcloud课程7 单例模式一般用在什么场景
查看>>
Js:消息弹出框、获取时间区间、时间格式、easyui datebox 自定义校验、表单数据转化json、控制两个日期不能只填一个...
查看>>
移动Web前端,游客点击商品的收藏按钮,登录完成,回来之后,如何自动收藏...
查看>>
css自适应浏览器大小
查看>>
C#与C++的发展历程第二 - C#4.0再接再厉
查看>>