cocos2d-x中的NODE_FUNC和CREATE_FUNC宏作用

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方法)。

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

阅读更多
个人分类: cocos2d-x
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭