cocos2dx中所有对象都继承于Ref,或者继承于 Ref和Clonable
Ref中就是维护了一个计数器,用于判断该继承于Ref的对象是否应该delete
class CC_DLL Ref
{
public:
//计数加1
void retain();
//计数减1,如果为0,删除对象
void release();
//添加到对象池中,别忘了PoolManager(对象池管理器) 管理AutoreleasePool(对象池),AutoreleasePool管理Ref
Ref* autorelease();
//得到当前的计数
unsigned int getReferenceCount() const;
protected:
//创建时计数设为1
Ref();
public:
virtual ~Ref();
protected:
/// count of references
//计数变量
unsigned int _referenceCount;
//友元类
friend class AutoreleasePool;
#if CC_ENABLE_SCRIPT_BINDING
public:
/// object id, ScriptSupport need public _ID
unsigned int _ID;
/// Lua reference id
int _luaID;
#endif
};以上转自:http://blog.youkuaiyun.com/w18767104183/article/details/25876481
本文深入探讨了Cocos2dx中对象的继承机制,重点介绍了Ref类及其核心功能,包括计数器的使用、自动释放和对象池管理。通过理解这些概念,开发者能更高效地管理和复用资源。
6491

被折叠的 条评论
为什么被折叠?



