留以备用:
//定义一个属性及其访问器,没有实现。通常用于简单的类型
#define CC_PROPERTY(varType, varName, funName)\
protected: varType varName;\
public: virtual varType get##funName(void);\
public: virtual void set##funName(varType var);
//定义一个属性,只包含get访问器,没有实现。
#define CC_PROPERTY_READONLY(varType, varName, funName)\
protected: varType varName;\
public: virtual varType get##funName(void);
//定义一个属性,访问器使用引用类型传递参数没有实现,通常用
//于结构体类型。
#define CC_PROPERTY_PASS_BY_REF(varType, varName, funName)\
protected: varType varName;\
public: virtual const varType& get##funName(void);\
public: virtual void set##funName(const varType& var);
//定义一个属性,只包含get访问器,且使用引用类型传递参数,没有实现。
#define CC_PROPERTY_READONLY_PASS_BY_REF(varType, varName, funName)\
protected: varType varName;\
public: virtual const varType& get##funName(void);
//定义一个属性,包含其访问器,简单实现了其访问器。
#define CC_SYNTHESIZE(varType, varName, funName)\
protected: varType varName;\
public: virtual varType get##funName(void) const { return varName; }\
public: virtual void set##funName(varType var){ varName = var; }
//定义一个属性,只包含get访问器,简单实现get访问器。
#define CC_SYNTHESIZE_READONLY(varType, varName, funName)\
protected: varType varName;\
public: virtual varType get##funName(void) const { return varName; }
//定义一个属性,访问器使用引用类型传递参数,简单实现了其访问器。
#define CC_SYNTHESIZE_PASS_BY_REF(varType, varName, funName)\
protected: varType varName;\
public: virtual const varType& get##funName(void) const { return varName; }\
public: virtual void set##funName(const varType& var){ varName = var; }
//定义一个属性,只包含get访问器,使用引用类型传参,简单实现其get访问器。
#define CC_SYNTHESIZE_READONLY_PASS_BY_REF(varType, varName, funName)\
protected: varType varName;\
public: virtual const varType& get##funName(void) const { return varName; }
//定义一个属性,及其访问器,实现了访问器方法,用于派生自CCObject 的类型,
//访问器采取Cocos2d-x的内内存管理机制,自动维对象的引用计数。
#define CC_SYNTHESIZE_RETAIN(varType, varName, funName) \
private: varType varName; \
public: virtual varType get##funName(void) const { return varName; } \
public: virtual void set##funName(varType var) \
{ \
if (varName != var) \
{ \
CC_SAFE_RETAIN(var); \
CC_SAFE_RELEASE(varName); \
varName = var; \
} \
}
备用,也希望能帮助到大家。