c++ 之shared_ptr與make_shared用法

  若是事先知道所需內存空間,使用靜態內存是最簡單的解決方案。函數

  可是,在程序設計的過程當中,每每會遇到須要開闢一個未知大小的內存空間,該空間根據程序所需發生大小的變化,此空間稱爲動態內存。.net

  程序設計中使用動態內存的緣由可能以下:設計

(1)程序不知道本身須要多少對象;指針

(2)程序不知道所需對象的準確類型;對象

(3)程序須要在多個對象之間共享數據blog

 

shared_ptr的用法:能夠指向特定類型的對象,用於自動釋放所指的對象。內存

make_shared的用法:make_shared在動態內存中分配一個對象並初始化它, 返回指向此對象的shared_ptr,與智能指針同樣,make_shared定義在頭文件memory中;get

當要用make_shared時,必須指定想要建立的對象類型,定義方式與模板類相同,在函數名以後跟一個尖括號,在其中給出類型;模板

如make_shared<int>p3 = make_shared<int>(42)程序設計

通常採用auto定義一個對象來保存make_shared的結果,如auto p1 = make_shared<int>(42);

 

 

感謝https://blog.csdn.net/u013360881/article/details/71798950

智能指針的用法更多請參考C++ Reference.

 

注意智能指針是指針!指針所指向的對象有一個引用次數的屬性,當引用次數爲0時,該對象就會被析構。

相關文章
相關標籤/搜索