c++ 引用计数的具体实现

http://www.cnblogs.com/QG-whz/p/4777312.html#_labe
C++ 引用计数技术及智能指针的简单实现

引用计数大于1说明这个内存的内容处于共享状态

if(--RefCnt>0){
  char *tmp= (char *)malloc(strlen(_Pstr)+1);
  strcpy(tmp,_Pstr);
  _Pst=tmp; 
}

怎么在内存中实现引用计数的呢?

  • 在申请string 对象空间的时候多分配一点,把这个引用计数顺道存下来,当发生拷贝构造或赋值时,将引用计数的值加1,如果引用计数大于1,表示有人要用,那么自己要先做一份拷贝,然后引用计数减1.

你可能感兴趣的:(c++ 引用计数的具体实现)