1、CCZone类:保存了CCObject的指针。
class CC_DLL CCZone{public: CCZone(CCObject *pObject = NulL);public: CCObject *m_pcopyObject;};
CC_DLL的定义为(动态链接库相关):
#if defined(_USRDLL) #define CC_DLL __declspec(dllexport)#else /* use a DLL library */ #define CC_DLL __declspec(dllimport)#endif2、CCcopying:拷贝CCZone类里的CCObject对象,仅是指针
class CC_DLL CCcopying{public: virtual CCObject* copyWithZone(CCZone* pZone);};
3、CCObject类:继承自CCcopying类,各成员如下:
class CC_DLL CCObject : public CCcopying{public: unsigned int m_uID; //对象ID,<span >ccScriptSupport需要公共的ID。</span> int m_nLuaID; //LUA引用ID。protected: unsigned int m_uReference; //引用计数 unsigned int m_uautoReleaseCount; //自动释放计数public: CCObject(voID); virtual ~CCObject(voID); voID release(voID); voID retain(voID); CCObject* autorelease(voID); CCObject* copy(voID); bool isSingleReference(voID) const; unsigned int retainCount(voID) const; virtual bool isEqual(const CCObject* pObject); virtual voID acceptVisitor(CcdataVisitor &visitor); virtual voID update(float dt) {CC_UNUSED_ParaM(dt);}; frIEnd class CCautoreleasePool;};CCObject定义的成员函数指针:
typedef voID (CCObject::*SEL_SCHEDulE)(float);typedef voID (CCObject::*SEL_CallFunc)();typedef voID (CCObject::*SEL_CallFuncN)(CCNode*);typedef voID (CCObject::*SEL_CallFuncND)(CCNode*,voID*);typedef voID (CCObject::*SEL_CallFuncO)(CCObject*);typedef voID (CCObject::*SEL_MenuHandler)(CCObject*);typedef voID (CCObject::*SEL_EventHandler)(CCEvent*);typedef int (CCObject::*SEL_Compare)(CCObject*);CCObject相关的函数宏:
#define schedule_selector(_SELECTOR) (SEL_SCHEDulE)(&_SELECTOR)#define callfunc_selector(_SELECTOR) (SEL_CallFunc)(&_SELECTOR)#define callfuncN_selector(_SELECTOR) (SEL_CallFuncN)(&_SELECTOR)#define callfuncND_selector(_SELECTOR) (SEL_CallFuncND)(&_SELECTOR)#define callfuncO_selector(_SELECTOR) (SEL_CallFuncO)(&_SELECTOR)#define menu_selector(_SELECTOR) (SEL_MenuHandler)(&_SELECTOR)#define event_selector(_SELECTOR) (SEL_EventHandler)(&_SELECTOR)#define compare_selector(_SELECTOR) (SEL_Compare)(&_SELECTOR)总结
以上是内存溢出为你收集整理的Cocos2d-x结构学习(一)CCObject、CCCopying、CCZone全部内容,希望文章能够帮你解决Cocos2d-x结构学习(一)CCObject、CCCopying、CCZone所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)