请问高人:如何用C++实现基于接口的引用计数?
如下面,
interface IX:public IUnKnown{
virtual void FunX()=0;
};
interface IY:public IUnknown{
virtual void FunY()=0;
};
class Com:public IX,public IY
{
public:
virtual void FunX(){;}
virtual void FunY(){;}
virtual HRESULT QueryInterface(const IID& iid,void **ppv){.....}
virtual ULONG AddRef(){ m_Ref++;return m_Ref;}
virtual ULONG Release(){m_Ref--;if(m_Ref==0) delete this; return 0;}
private:
ULONG m_Ref=0;
};
以上的设计(大多数的c++ Com实现都是如此)是基于对象一级的引用计数,现在我想实现基于接口的引用计数(就是对每个接口都进行引用计数),请问各位高人,如何实现?