C 智慧型指標 shared ptr用法

2021-10-17 11:07:58 字數 637 閱讀 5381

主要如下:

(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智慧型指標

智慧型指標是乙個行為類似指標的物件。我們在使用堆記憶體時,都需要及時地進行釋放,避免造成記憶體洩漏。但我們偶爾也會忘記將其釋放掉,從而造成記憶體洩漏。並且,在釋放的時候,我們可能對某乙個指標進行了重複釋放,導致程式崩潰的問題。為了能夠解決這些問題,從而有了智慧型指標的設計。智慧型指標一共有四種,分別...