第三十七课 智能指针
文章目录
一、问题
-
内存泄漏
动态申请堆空间,用完不归还
C++ 语言中没有垃圾回收机制
指针无法控制所指堆空间的声明周期
-
解决方法
需要一个特殊指针
指针生命周期结束时主动释放堆空间
一片堆空间最多只能由一个指针标识符
杜绝指针运算和指针比较
-
解决方案
重载指针特征操作符("->"和 “*”)
只能通过类的成员函数重载
重载函数不能使用参数
只能定义一个重载函数
-
智能指针有点
能够自动收回内存
二、智能指针的使用规定
只能用来指向堆空间的对象或者变量
三、小结
- 指针特征操作符(“->” 和 “*”)可以被重载
- 重载指针特征符能够使用对象代替指针
- 智能指针只能用于指向对空间中的内存
- 智能指针的意义在于最大程度的避免内存问题