C++ Primer学习总结 第12章 动态内存

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

技术分享



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。