第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来管理数组.