注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

轻松度过每一天

真的猛士敢于直面惨淡的人生,敢于正视淋漓的鲜血,这是怎样的哀痛者和幸福者!!

 
 
 

日志

 
 
关于我

When you are young, you may want several love experiences. But as timegoes on, you will realize that if you really love someone, the wholelife will not be enough. You need time to know, to forgive and to love.All this needs a very big mind.

网易考拉推荐

个人对代理Delegate(委托)理解的学习笔记cocos2dx(c++)  

2014-08-02 20:49:12|  分类: com.myCompany.Te |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
所谓代理delegate就是将自己的事情给别人干,每个人可以通过该代理实现自己的想法。
而使用deleggate,可扩展性和可配置性高,可通过其获得参数等
now:一个代理类

###############ADelegate.h############

//.m文件不实现东西可不写

class ADelegate{

public:

//virtual void print() = 0;//括号内可写参数

virtual void print(const int& str) = 0;

};

###############ClassB.h############

class ClassB : ADelegate{//B继承自A代理

public:

virtual void print(const int& i);//代理函数的纯虚函数全部实现,否则不能实例对象

}

}

###############ClassB.m############

#include "ClassB.h"

void ClassB::print(const int& i){//你要做的事

cout << "你给的数字是"<< i<< endl;

}

###############ClassC.h############

#include "ADelegate"//这里基本关系不到ClassB对吧

class ClassC {

private:

int a;

ADelegate* pADelegate;

public:

C() : a(2),pADelegate(new B){};//构造函数,初始化变量

void speak();

}

}

###############ClassC.m############

#include "ClassC.m"


void ClassC::speak(){//你要做的事

//cout << "给你"<< i<< endl;//输出到控制台

pADelegate->print(i);

}

如果我们有另一个类ClassD也想用到ADelegate的方法,也可以自己写,这样扩展行


贴上一张图,比较直观的
个人对代理Delegate(委托)理解的学习笔记cocos2dx(c++) - 世界不属于我 - 轻松度过每一天

 


  评论这张
 
阅读(152)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017