主要如下:
(1)建立出來後,在生命週期結束後自動釋放並呼叫物件的析構函式。
(2)理解shared的意義,多個智慧型指標可以共享乙個物件,其體現在shared_ptr的use_count()計數上,每多乙個智慧型指標,計數就加1,每結束乙個智慧型指標則減1,只有當use_count()為0時這個指標指向空間才會真正釋放
#include
using
namespace std;
classaa~
aa()public
:int num =0;
char l;};
shared_ptr
fun(shared_ptr c)
intmain()
printf
("a->use_count=%d\n"
, a.
use_count()
);printf
("a結束生命週期\n");
//此時呼叫析構函式
c 智慧型指標 shared ptr
為了更容易更方便的使用動態記憶體,c 提供了兩種智慧型指標shared ptr和unique ptr來管理動態物件,智慧型指標負責自動釋放所管理的物件,避免因為不合適的釋放導致的記憶體洩露和訪問已釋放記憶體的bug 智慧型指標也是模板,建立乙個智慧型指標時,必須提供額外的型別資訊,如shared p...
C 智慧型指標 shared ptr
shared ptr 是乙個標準的共享所有權的智慧型指標,允許多個指標指向同乙個物件.定義在 memory 檔案中 非memory.h 命名空間為 std.shared ptr 是為了解決 auto ptr 在物件所有權上的侷限性 auto ptr 是獨佔的 在使用引用計數的機制上提供了可以共享所有...
shared ptr智慧型指標
智慧型指標是乙個行為類似指標的物件。我們在使用堆記憶體時,都需要及時地進行釋放,避免造成記憶體洩漏。但我們偶爾也會忘記將其釋放掉,從而造成記憶體洩漏。並且,在釋放的時候,我們可能對某乙個指標進行了重複釋放,導致程式崩潰的問題。為了能夠解決這些問題,從而有了智慧型指標的設計。智慧型指標一共有四種,分別...