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


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

 

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

 

[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()函數創建出來的對象就不用費心去管理釋放內存了.這個宏是不是很好用?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM