第12章 動態內存
1. 申請並使用shared_ptr. P400
2. shared_ptr計數. P402
賦值, 拷貝, 向函數傳遞一個智能指針, 或函數返回一個智能指針都會增加當前智能指針的計數.
3. 不同對象間利用智能指針共享數據的例子.
4. 使用new來動態申請內存. P407
默認情況下,new申請的內存對象都是默認初始化的.
5. new申請的const對象必須初始化. P408
如果申請內置類型, 那麼必須用括號()初始化. 如果申請類類型, 如果該類對象有默認構造函數, 可以默認初始化. 但是如果該類對象沒有默認構造函數, 那麼必須用其他構造函數初始化.
6. 使用delete. P409
delete只能刪除指針且該指針指向的必須是用過new申請的內存空間.
7. shared_ptr和new結合使用. P412
8. 不要混用智能指針和內置指針.P 413
9. unique_ptr對象初始化. P417
由於unique_ptr”擁有”它的對象, 所以它不能拷貝和賦值, 且只能用內置指針通過括號()初始化它.
但是我們可以拷貝或賦值一個即將被消耗的unique_ptr. 如下面函數所示:
10. unique_ptr對象的reset()函數和release()函數用法. P418
11. unique_ptr傳遞自己的刪除器: P419
shared_ptr傳遞自己的刪除器也類似於unique_ptr.
12. weak_ptr 使用例子 P420.
13. new分配動態數組. P424
無論方式1還是方式2,得到的都是數組元素類型的指針而不是得到一個數組類型,所以如果對其用begin或end都是錯的
14. 使用智能指針管理動態數組. P425
推薦使用unique_ptr來管理數組.