数据结构之智能指针

@智能指针

内存泄漏(臭名昭著的Bug)

一、动态申请堆空间,用完后不归还;
二、C++语言中没有垃圾回收的机制;
三、指针无法控制所指堆空间的生命周期。

当代的C++软件平台中的智能指针(需求)

一、指针生命周期结束时主动释放堆空间;
二、一片堆空间最多只能由一个指针标识;
三、杜绝指针运算和指针比较。

智能指针的设计方案

1、通过类模板描述指针的行为;
1)、能够定义不同类型的指针对象;
2、重载指针特征操作符(->和*)
2)、利用对象模拟原生指针的行为;

例题:智能指针的实现

main .c中要包含上面实现的SmartPointer这个头文件

注意:智能指针的军规

只能用来指向堆空间中的单个对象或者变量,不能用来指向堆空间中一个数组、局部的对象、局部的变量。

小结

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览33897 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年8月4日
下一篇 2020年8月4日

相关推荐