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

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