cocos2d-x系列笔记(9.2)---浅谈cocos2d-x使用函数指针实现委托(下)
上一讲我们通过c#的代码理解了委托,这一讲我们就来说说在cocos2d-x中如何实现委托
cocos2d-x使用的是c/c++语言,c++中并没有委托的概念,但c++中有函数指针.利用函数指针我们就可以实现委托的机制
上代码:
.h文件:
a->excuteAdd(2,3,b,callAddFunc(B::Add));这样就顺眼多了。
配合cocos2d-x系列笔记(9.1)---浅谈cocos2d-x使用函数指针实现委托(上)---通过c#代码理解委托该文章中对委托的定义,我们可以对代码做如下解释:
A接受到一个请求,要对某些事物进行处理,(这个请求是Main函数中对A的excuteAdd方法的调用)但A目前不知道该怎样处理这个事物,就把处理该事物的工作交给B以后去做.(A中并没有定义加法的具体操作方法)A会给B定义出一个函数的模板,指示B该去实现一个什么样的函数去处理这件事物.(A中定义了typedef int (B::*AddFunc)(int,int);告诉B加法要用这种形式的函数去处理)事物的处理由B全权负责,(在B中我们定义了Add函数进行了加法操作)而A只负责适时通知B什么时候该处理此事物.(A在excuteAdd中调用了(pTarget->*func)(a,b)通知B去执行Add函数执行加法操作)
下一篇我会在demo中实现一个使用函数指针的具体功能.