cocos2d-x中的NODE_FUNC和CREATE_FUNC兩個宏方法的作用

在Cocos2d-x頭文件xxxxx.h中經常看到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; \

} \

}


從cocos2d-x源碼可以看出其作用:

實現二階段構造:

即先調用構造函數(CCLayer類node方法中調用構造函數),再調用init方法進行初始化(子類中先調用父類的init方法)。

設置其自動釋放內存,方便內存管理,不需要手動去釋放

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章