引用计数是一种简单的内存管理方式,通过在对象内部维护一个计数器,记录当前有多少处引用指向该对象,从而决定对象的生命周期。
下面的 Ref 类作为基类,提供最基本的引用计数能力:对象构造时计数为 1,调用 retain() 增加引用,调用 release() 减少引用;当计数归零时自动销毁自身。
.
class Ref
{
private:
unsigned int _RefCount;
public:
Ref() :_RefCount(1){}
virtual ~Ref(){}
void retain()
{
++_RefCount;
}
void release()
{
--_RefCount;
if (_RefCount == 0) delete this;
}
};
.