Add reference count capability to your class with a template class

原创 2002年04月22日 09:32:00

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;
};

 

Error: template argument uses local type

请看如下一段代码: template void PostOrderTraverse_I(TreeNode* t,void (*Visit)(ElemType& e)) { struct S...
  • qtyl1988
  • qtyl1988
  • 2011年09月25日 21:45
  • 2021

idea 的奇葩问题

ubuntu idea java class error: This template did not produce a Java class or an interface ...
  • yudi12345
  • yudi12345
  • 2017年08月20日 12:04
  • 522

简述不能在IntelliJ IDEA创建类

在IntelliJ IDEA中创建class的时候报下面异常: Unable to parse template "Class" Error message: This template did ...
  • libin_gogogo
  • libin_gogogo
  • 2017年10月30日 15:23
  • 324

Unable to parse template "Annotation" Error message: This template did not produce a Java class or a

今天在Android Studio 里新建一个注解时,竟然报错了,截图如下:看到这也是醉了,以前我记得都是可以的啊,现在新建class和Interface都是可以的,唯独新建注解就不行了,于是百度一下...
  • A448955639
  • A448955639
  • 2017年12月03日 19:01
  • 345

E Looper : WARNING: The Looper class instance count has over a limit(100). There should be some l

解决E Looper  : WARNING: The Looper class instance count has over a limit(100). There should be some l...
  • wds1181977
  • wds1181977
  • 2015年04月20日 09:20
  • 2641

std::map 编译异常

Got the above error, when compiling something that looked like this:std::map myMap;myMap[“Test”] = m...
  • brucelin_cn
  • brucelin_cn
  • 2011年06月21日 14:02
  • 2768

Android studio无法创建类和接口问题解决办法。提示 Unable to parse template "Class"

重新配置了studio 的工作环境, 没问题,后来加需求要新增java类和接口,这就出现问题了,新建的时候,就会报错: Unable to parse template "Interfa...
  • renhaijuniryfe
  • renhaijuniryfe
  • 2017年11月25日 09:47
  • 1032

C++面向对象编程<十三>:template和reference

class template 、function template以及member template; class template 和 function template前面的文章讲过member...
  • MonroeD
  • MonroeD
  • 2016年02月25日 21:03
  • 391

Unable to parse template "Class" Error message: This template did not produce a Java class or an int

问题: 解决方法: File→ settings→ Edito→ File and Code Templates→ Class 打上如下代码: #if (${PACKAGE_N...
  • carejx
  • carejx
  • 2017年12月20日 13:55
  • 115

Java错误提示is not an enclosing class

今天脑袋晕乎乎的,犯了个低级错误,好半天才反应过来 一直提示:is not an enclosing class 我居然把  RegisterActivity.class  ...
  • zsjangel
  • zsjangel
  • 2014年03月09日 13:23
  • 13730
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Add reference count capability to your class with a template class
举报原因:
原因补充:

(最多只允许输入30个字)