仿函数function和lambda表达式的使用以及cocos2dx中CREATE_FUN()的原理
来源:互联网 发布:描述设置数据有效性 编辑:程序博客网 时间:2024/05/15 15:31
/** * @author: 龚志慧 * @date: 2017.10.17 * * 模拟cocos2d-x的宏定义 CREATE_FUNC * std::function<>的用法,类似函数指针,如果函数参数是拉姆达表达式, * 函数形参可以用std::function<>,示例如下: * */#include <iostream>#include <functional>/** * CREATE_FUNC相当于一个公共接口,任何类中调动它,都可以通过 * ClassName::create()来创建该类的对象*/#define CREATE_FUN(_TYPE_)\static _TYPE_* create() \{ \ _TYPE_ *pRet = new _TYPE_();\ pRet->init();\ //此处应该有 pRet->autorelease();但仅仅练习宏定义函数 没有处理(释放)pRet return pRet;\}class A{public: A(){} virtual ~A(){} bool init(); CREATE_FUN(A); void show();};bool A::init(){ std::cout<< "init() is called!!!" <<std::endl;}void A::show(){ std::cout<< "2show() is called!!!" <<std::endl;}//std::function<int(int,int)> f same as typedef int(*Func)(int, int);//lambda表达式作为函数参数,函数的形参用std::function<>void gzh(std::function<A*()> f){ f()->show();}void sum(int a, int b){ std::cout<< a+b <<std::endl;}int main(){ A *a = A::create(); a->show(); //以下是function的例子 std::function<void(int,int)> Sum; Sum = sum; Sum(1,2); //函数指针 typedef void(*Func)(int, int); Func f = sum; f(4,5); //lambda表达式作为函数参数 gzh([](){return new A();}); return 0;}
阅读全文
0 0
- 仿函数function和lambda表达式的使用以及cocos2dx中CREATE_FUN()的原理
- 2.cocos2dx 3.2中语法的不同之处,lambada表达式的使用和function和bind函数的使用
- cocos2dx 3.0 lambda表达式的使用
- Cocos2dx 3.0 lambda表达式的使用
- Cocos2dx 3.0 -- lambda表达式的使用
- android中lambda表达式的使用,以及如何引入
- Java8的Function接口以及Lambda表达式Demo
- 使用C++11里面的Lambda表达式,来取代仿函数
- python中reduce函数和lambda表达式的学习
- cocos2dx中lambda表达式几种用法的初步总结
- cocos2dx中lambda表达式几种用法的初步总结
- Cocos2dx 3.0 过渡篇(十二) lambda表达式的使用
- Cocos2dx 3.0 过渡篇(十二) lambda表达式的使用
- Cocos2dx 3.0 过渡篇(十二) lambda表达式的使用
- (2) Cocos2dx 3.x lambda表达式的使用
- 有效使用 Lambda 表达式和 std::function
- 一段关于c++11中lambda表达式和std::function的体验代码
- 和Lambda表达式相关的Consumer、Function、Predicate 与 Supplier
- LeetCode-53:Maximum Subarray (和最大的连续子数组)
- 关于先锋参数文件.p中默认加减速度
- test
- JS的简易时钟
- vim查找替换
- 仿函数function和lambda表达式的使用以及cocos2dx中CREATE_FUN()的原理
- Integer.parseInt("") Integer.valueOf("")和new Integer("")之间的区别
- Python获取并输出当前日期时间
- Handlebars.js 模板引擎
- 1118. Birds in Forest (25)
- heidisql导入txt、csv等文件时乱码问题解决方案
- R语言删除数据框中含有缺失值NA的行或列
- activeMQ简介
- C++之类外定义成员函数、inline成员函数详解