剛接觸智慧型指標,先寫下來以免忘記,可能會有解釋不正確的地方
using namespace std;
#include//智慧型指標都是棧上的物件
templateclass autoptr
autoptr(autoptr& ap) //拷貝構造,類x的拷貝建構函式的形式為x(x& y),顯示呼叫,否則系統預設生成拷貝建構函式(淺拷貝)
autoptr& operator=(autoptr& ap) //運算子過載 ,拷貝建構函式功能與賦值函式功能相同,模板+指標運算子過載構成智慧型指標
return *this; //如果是自己給自己賦值返回*this
} t* operator->() //過載 ->指標運算子
t operator*() //過載* 解引用運算子
~autoptr() //析構函式-釋放資源
void reset(t* ptr=0) //重置auto_ptr物件,如不重置,則傳遞0值,
//釋放原來指向的那塊動態分配的空間
_ptr = ptr;
} public:
t* _ptr; //指標,指向動態分配的記憶體
}; int main()
auto ptr智慧型指標
1 class auto ptr 這個智慧型指標應該保證,無論在何種情形下,只要自己被摧毀,就一定連帶釋放其所指資源。而由於智慧型指標本身就是區域變數,所以無論是正常退出,還是異常退出,只要函式退出,它就一定會被銷毀。注意 auto ptr不允許使用一般指標慣用的賦值 assign 初始化方式。必須...
智慧型指標 AutoPtr
include include include using namespace std void func autoptr 析構函式來負責釋放 void test catch exception e autoptr 析構函式來負責釋放 private t ptr struct aa void fun...
stl智慧型指標auto ptr
感覺auto ptr還是存在一些不足的,效率十分低,而且丟失了一般指標方便常用的操作,如 等,auto ptr只過載了 這幾個操作符,所以使用很不方便。一 說明 int a null delete a do nothing 應此auto ptr的析構函式是這樣子的 auto ptr 二 auto p...