c++ 之shared_ptr與make_shared用法


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

  但是,在程序設計的過程中,往往會遇到需要開辟一個未知大小的內存空間,該空間根據程序所需發生大小的變化,此空間稱為動態內存。

  程序設計中使用動態內存的原因可能如下:

(1)程序不知道自己需要多少對象;

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

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

 

shared_ptr的用法:可以指向特定類型的對象,用於自動釋放所指的對象。

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

當要用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時,該對象就會被析構。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM