引用计数是一种简单的内存管理方式,通过在对象内部维护一个计数器,记录当前有多少处引用指向该对象,从而决定对象的生命周期。

下面的 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;
	}

};


.