cocos2d-x系列笔记技巧篇—关于CREATE_FUNC宏的用法 分类: cocos2d代码编写 2015-07-29 08:50 7人阅读 评论(0) 收藏
2015-07-29 08:50
597 查看
阅读cocos2d-x demo的代码,我们会看到有些头文件中使用CREATE_FUNC这个宏,那么它是做什么的呢?在cocos2d-x
又是起什么作用呢?下面我们就一起来看看CREATE_FUNC宏的源代码:
copy
/**
* define a create function for a specific type, such as CCLayer
* @__TYPE__ class type to add create(), such as CCLayer
*/
#define CREATE_FUNC(__TYPE__) \
static __TYPE__* create() \
{ \
__TYPE__ *pRet = new __TYPE__(); \
if (pRet && pRet->init()) \
{ \
pRet->autorelease(); \
return pRet; \
} \
else \
{ \
delete pRet; \
pRet = NULL; \
return NULL; \
} \
}
注释中写的很明确,为一个类似CCLayer类的特定的类增加一个create函数.我们也可以看到在宏的下面定义了一个create()函数返回的类型就是宏带入的参数__TYPE__指针类型.那create函数里做了什么呢?它执行了类的构造函数,执行了init()初始化函数,最后又设置创建出的对象为自动释放内存.这样其他人在使用这个类的时候,只要是用create()函数创建出来的对象就不用费心去管理释放内存了
又是起什么作用呢?下面我们就一起来看看CREATE_FUNC宏的源代码:
copy
/**
* define a create function for a specific type, such as CCLayer
* @__TYPE__ class type to add create(), such as CCLayer
*/
#define CREATE_FUNC(__TYPE__) \
static __TYPE__* create() \
{ \
__TYPE__ *pRet = new __TYPE__(); \
if (pRet && pRet->init()) \
{ \
pRet->autorelease(); \
return pRet; \
} \
else \
{ \
delete pRet; \
pRet = NULL; \
return NULL; \
} \
}
注释中写的很明确,为一个类似CCLayer类的特定的类增加一个create函数.我们也可以看到在宏的下面定义了一个create()函数返回的类型就是宏带入的参数__TYPE__指针类型.那create函数里做了什么呢?它执行了类的构造函数,执行了init()初始化函数,最后又设置创建出的对象为自动释放内存.这样其他人在使用这个类的时候,只要是用create()函数创建出来的对象就不用费心去管理释放内存了
相关文章推荐
- Cocos2d-x中文支持问题的解决办法
- 远古守卫/cocos2d-x 源码/塔防游戏/高仿王国保卫战
- Lua_Cocos Code IDE打造炫酷的颜色主题,用于保护眼睛
- 【独立开发者er Cocos2d-x实战 012】Cocos2dx 2.2.6 CCTableView和CCTableViewCell详解
- cocos2dx飞机大战开发记录(2)
- cocos2d-x 3.x游戏教程 - Eight 第二篇
- cocos2d-x获取屏幕位置信息代码
- cocos2d-x获取屏幕位置信息代码 分类: cocos2d代码编写 2015-07-28 21:32 7人阅读 评论(0) 收藏
- cocos2d小游戏---忍者吃西瓜
- cocos2d-x 入门游戏:许特尔图_4 of 4
- Cocos2d-JS开发常见问题汇总
- cocos2d-x 入门游戏:许特尔图_3 of 4
- Cocos2d-JS项目之四:UI界面的优化
- Cocos2d-JS项目之三:使用合图
- Cocos2d-JS项目之二:cocostudio基础控件的使用
- 【Cocos2d-js教程】cocos2d-js 富文本 RichText
- cocos2d-x 3.x变动 - CCTime 的修改
- [cocos2dx]事件分发机制--lua源码(二)
- 【Cocos2d-x】CCAction
- cocos2d-x 精灵换图片