cocos2d-x系列筆記技巧篇(2)---關於CREATE_FUNC宏的用法

FROM://http://blog.csdn.net/jinciyulang/article/details/8631889函數

 

閱讀cocos2d-x demo的代碼,咱們會看到有些頭文件中使用CREATE_FUNC這個宏,那麼它是作什麼的呢?在cocos2d-x 又是起什麼做用呢?下面咱們就一塊兒來看看CREATE_FUNC宏的源代碼:spa

 

[cpp]  view plain copy
 
  1. /** 
  2.  * define a create function for a specific type, such as CCLayer 
  3.  * @__TYPE__ class type to add create(), such as CCLayer 
  4.  */  
  5. #define CREATE_FUNC(__TYPE__) \  
  6. static __TYPE__* create() \  
  7. { \  
  8.     __TYPE__ *pRet = new __TYPE__(); \  
  9.     if (pRet && pRet->init()) \  
  10.     { \  
  11.         pRet->autorelease(); \  
  12.         return pRet; \  
  13.     } \  
  14.     else \  
  15.     { \  
  16.         delete pRet; \  
  17.         pRet = NULL; \  
  18.         return NULL; \  
  19.     } \  
  20. }  

 

 

註釋中寫的很明確,爲一個相似CCLayer類的特定的類增長一個create函數.咱們也能夠看到在宏的下面定義了一個create()函數返回的類型就是宏帶入的參數__TYPE__指針類型.那create函數裏作了什麼呢?它執行了類的構造函數,執行了init()初始化函數,最後又設置建立出的對象爲自動釋放內存.這樣其餘人在使用這個類的時候,只要是用create()函數建立出來的對象就不用費心去管理釋放內存了.這個宏是否是很好用?.net

相關文章
相關標籤/搜索