關於Cocos2d-x的CC_SYNTHESIZE 和 CC_SYNTHESIZE_READONLY 宏的作用


一、CC_SYNTHESIZE(varType, varName, funName)這個宏是用來定義變量varName,其類型爲varType,並生成其get/set方法,分別爲:
        getfunName() 和 setfunName(varType var) 。
用法參考:
  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4. #define CC_SYNTHESIZE(varType, varName, funName)\  
  5. protected: varType varName;\  
  6. publicvirtual varType get##funName(voidconst { return varName; }\  
  7. publicvirtual void set##funName(varType var){ varName = var; }  
  8.   
  9. class plane  
  10. {  
  11. CC_SYNTHESIZE(int, hp, Hp)  
  12. };  
  13.   
  14. int main()  
  15. {  
  16.     plane *p = new plane;  
  17.     p->setHp(1);  
  18. int result = p->getHp();
  19. }  
二、CC_SYNTHESIZE_READONLY(varType, varName, funName)聲明一個成員變量以及getfunName函數,沒有set函數。getfunName已經實現,其實現就是返回這個值。   
例如定義一個只讀屬性Label,在類定義中可以使用this->getLabel來訪問,如下:
    CC_SYNTHESIZE_READONLY(cocos2d::CCLabelTTF*,_label,Label);
this->getLabel();//返回 _label 。

發佈了2 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章