c++11学习笔记(7)- 智能指针的简单实现

上一篇文章中简单介绍了只能指针的简单使用,文章链接如下:
c++11学习笔记(6)- 智能指针
本片文章简单介绍一下智能指针的实现


 

1. auto_ptr的简单实现

代码如下:

测试代码如下:

运行结果:
10
10

auto_ptr的实现比较简单,在构造函数的时候为指针赋值,并且将赋值过来的指针置nullptr就可以了。

 

2. unique_ptr的简单实现

代码如下:

测试代码如下:

运行结果:
20
20

说明:大体上跟 auto_ptr 差不多,不同的是屏蔽了默认构造函数和默认赋值操作函数,使用移动构造函数和移动赋值操作函数替代。

 

3. shared_ptr的简单实现

代码如下:

测试代码如下:

运行结果:
30
1
50, 50
2

说明: 实用模板类 SharedData 存放共享数据和指针的引用计数,在释放智能指针 SharedPtr 时,引用计数减1,当引用计数为0的时候再释放内存。

You May Also Like

About the Author: admin

喜欢编程、爱游戏,更爱生活。

发表评论

电子邮件地址不会被公开。