C++ primer 第十二章筆記之 動態內存
阿新 • • 發佈:2017-05-13
weak memory ont 創建 tor size prim 自動 pre
動態內存:
運算符:new,delete
智能指針:
頭文件:memory shared_ptr:允許多個指針指向同一個對象; unique_ptr:"獨占"所指向的對象; weak_ptr:一種弱引用,指向shared_ptr所管理的對象;
shared_ptr類
智能指針也是模板,創建指針時,提供指針指向的類型;
//創建: shared_ptr<string> p1; //若p1不為空,檢測它是否指向一個空string if( p1 &&p1->empty() ) *p1 = "cjz";
make_shared 函數
shared_ptr<int> p3 = make_shared<int>(24); shared_ptr<string> p4 = make_shared<string>(10,‘9‘); shared_ptr<int> p5 = make_shared<int>(); //使用auto:p6指向一個動態分配的空vector<string> auto p6 = make_shared<vector<string>>();
引用計數:一旦一個shared_ptr的計數器變為0,它就會自動釋放自己所管理的對象;
shared_ptr自動銷毀所管理的對象,通過 析構函數 完成;
shared_ptr還會自動釋放相關聯的內存;
對於一塊內存,只要有任何shared_ptr對象引用它,它就不會被釋放掉;
使用動態內存的一個常規原因是允許多個對象共享相同的狀態;
C++ primer 第十二章筆記之 動態內存