智慧型指標之auto ptr02

2021-10-20 11:39:25 字數 441 閱讀 4205

該智慧型指標已經被棄用,下面只是演示它所有權改變後不報錯誤的**,實際上你編譯的時候它也會提示你auto已經被棄用,但還能執行。

#include

#include

#include

using

namespace std;

/* auto_ptr<>的使用 已經被c++11拋棄

1 採用所有權模式 存在潛在的記憶體問題 任何情況別用

這裡只是演示它存在的問題

*/void

test01()

cout<總結:p2=p1後,p2奪走所有權,你看原始碼可以知道p1會在交換之後被釋放掉了,

所以在使用它就會相當於非法訪問,但是他不會報錯,這就是auto_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...

C 智慧型指標之auto ptr

c 中指標申請和釋放記憶體通常採用的方式是new和delete。然而標準c 中還有乙個強大的模版類就是auto ptr,它可以在你不用的時候自動幫你釋放記憶體。下面簡單說一下用法。cpp view plain copy 用法一 std auto ptrm example new myclass 用法...