Generic callback

今天又经历了一次广度搜索式的学习,从generic callback(泛型回调)到Function object。

看了sgi关于function object 的解释,我的c++脉象顿时打通了Function object这一点。因为之前看essential c++,里面也提到了Function object,当时我还是似懂非懂。

sgi里面说A Function Object , or Functor (the two terms are synonymous) is simply any object that can be called as if it is a function. An ordinary function is a function object, and so is a function pointer; more generally, so is an object of a class that defines operator() .

在C++里,一切东西都是对象,我们自己写的类的对象是用户类型的对象,c++语言提供的类型,int,float之类的是语言内建类型对象,那么我们自己写的带operator()的类就是function object,然后一般的函数指针跟int,float一样也是C++语言内建的对象。这样我们一般所说的function object其实就是用户写的带operator()的类的对象。

 

看完了generic callback这一章,感觉还是挺有用的,事实上现在游戏里的event系统就是这样写的,只不过是固定单个参数的T::*func,而且没有用operator符号,而是具名的handleEvent,文章里的make_callback模板函数还是挺方便的,明天加到系统里。

 

另外,在看Exeptional C++ Style的中文版的#35时,一开始还为其将wrapper翻译成外覆而对作者不以为然,后来看下去发现整体翻译还行,所以保持一颗宽容的心还是很重要的,不过wrapper的那个翻译真的太不给力。

 

这里,再贴一遍代码,以待备用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值