#include
#include
using
namespace
std;
template
struct free//建立與malloc匹配的刪除器
};template
struct del//建立與new匹配的刪除器
};struct fclose//建立與fopen匹配的刪除器
};template
第二個引數則是模板類引數
class sharedptr
sharedptr(sharedptr& sp)//拷貝建構函式
:_pstr(sp._pstr)
,_pcount(sp._pcount)
sharedptr>& operator=(sharedptr& sp)//分三種情況
++(*sp._pcount);
_pstr = sp._pstr;
_pcount = sp._pcount;
}return *this;
}int getcount()
void release()
~sharedptr()
}private:
int *_pcount;
t* _pstr;
delete _del;
};void funtest()
int main()
c 定製刪除器
定製刪除器其實是利用仿函式 一 仿函式是什麼?不是函式但可以像函式一樣使用,因為過載了operator 簡單舉例 templatestruct less void test2 二 具體場景 void teat 上述場景中將產生錯誤,因為用fopen開啟,要用fclose關閉 三 定製刪除器舉例 如下...
定製刪除器
定製刪除器的產生 在實現智慧型指標的過程中,我們需要管理資料的構造以及析構,但不同的資料擁有不同的析構方式,例如檔案,new出來的空間等等,在利用模板程式設計中,我們需要識別不同的資料型別,然後選擇合適的刪除機制,做到一一對應。定製刪除器的實現利用了仿函式,如果你不知道仿函式的話,可以閱讀下面的一小...
shared ptr 定製刪除器 和 迴圈引用
前面我們介紹智慧型指標的時候,說了兩個智慧型指標分別是 auto ptr和scoped ptr,auto ptr有問題,為此,scoped ptr的出現解決了這個問題,scoped ptr太霸道,不允許別人和他共用一塊記憶體空間,所以,我們還得想辦法解決這個問題。回想我們以前看過內容,當提到共用一塊...