关闭

cocos2d-x中的NODE_FUNC和CREATE_FUNC宏作用

700人阅读 评论(0) 收藏 举报
分类:

NODE_FUNC (   __TYPE__ )

CREATE_FUNC (   __TYPE__ )


我们经常在头文件中用到上面两个宏。一个重写node()方法,另一个重写create()方法.


NODE_FUNC (   __TYPE__ )代码如下:

CC_DEPRECATED_ATTRIBUTEstatic__TYPE__* node() \

{ \

__TYPE__ *pRet = new __TYPE__(); \

if (pRet && pRet->init()) \

{ \

pRet->autorelease(); \

return pRet; \

} \

else \

{ \

delete pRet; \

pRet = NULL; \

return NULL; \

} \

}


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类node方法中调用构造函数),再调用init方法进行初始化(子类中先调用父类的init方法)。

设置其自动释放内存,方便内存管理,不需要手动去释放

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:228317次
    • 积分:3630
    • 等级:
    • 排名:第9298名
    • 原创:110篇
    • 转载:126篇
    • 译文:23篇
    • 评论:17条
    最新评论