智能指针分析

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

动态申请堆空间,用完后不归还

C++ 语言中没有垃圾回收的机制

指针无法控制所指堆空间的生命周期

我们需要什么?

需要一个特殊的指针

指针生命周期结束时主动释放堆空间

一片堆空间最多只能由一个指针标识

杜绝指针运算和指针比较

解决方案

重载指针特征操作符 ( -> 和 * )

只能通过类的成员函数重载

重载函数不能使用参数

只能定义一个重载函数

智能指针的使用军规

只能用来指向堆空间中的对象或者变量

小结

指针特征操作符 ( -> 和 * ) 可以被重载

重载指针特征符能够使用对象代替指针

智能指针只能用于指向堆空间中的内存

智能指针的意义在于最大程度的避免内存问题

你可能感兴趣的:(C++,c++)