如果事先知道所需內存空間,使用靜態內存是最簡單的解決方案。
但是,在程序設計的過程中,往往會遇到需要開辟一個未知大小的內存空間,該空間根據程序所需發生大小的變化,此空間稱為動態內存。
程序設計中使用動態內存的原因可能如下:
(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時,該對象就會被析構。