欢迎访问:常州市武进区嘉泽中心小学网站 !今天是:
栏目列表
您现在的位置是:首页>>教师>>计算机技术>>程序设计>>杂项>>文章内容
Add reference count capability to your class with a template class
发布时间:2008-11-20   点击:   来源:本站原创   录入者:佚名
 

Because my system can't install Chinese IME, so... In fact, everyone read this article should know my english is very pool.

// This template class is used to add "ref count" feature for any class
template <class T>
class CRefObject : public T
{
public:
 DWORD AddRef(void)
 {
  return ::InterlockedIncrement((LPLONG)&m_dwRef);
 }
 DWORD Release(void)
 {
  if (0 == m_dwRef ||
   0 == ::InterlockedDecrement((LPLONG)&m_dwRef))
  {
   delete this;
   return 0;
  }
  return m_dwRef;
 }
 // Create an instance buf ref == 0
 static CRefObject<T> * CreateInstance(void)
 {
  CRefObject<T> * p = NULL;
  p = new CRefObject<T>();
  return p;
 }
protected:
 // Note: All T MUST have a default constructor
 CRefObject(void) : m_dwRef(0)
 {
 }
 // I think it is unnecessary to define a "virtual" distrcutor
 ~CRefObject() {};
 DWORD m_dwRef;
};

 


附件:
    关闭窗口
    打印文档
    账号登录
    保持登录 忘记密码?
    账号与武进教师培训平台同步