智能指针(一)之引入
一、什么是智能指针
智能指针:所谓智能指针就化的管理是智能/自动指针所指向的动态资源的释放。(利用RAII机制)
RAII: 1. 定义一个类来封装资源的分配和释放
2. 资源分配即初始化, 在构造函数完成资源的分配和初始化,
3.在析构函数完成资源的清理,可以保证资源的正确初始化和释放。
注:智能指针不等于RAII,智能指针只是RAII思想的一种实现。
在c++中动态开辟的内存需要我们自己去维护,每次动态开辟内存,都要手动去释放。但是在释放动态开辟的内存时稍不留神就会出现一些问题(比如:1.在程序某个分支,忘记释放内存。2.程序出现抛异常(在delete之前return)),这样会引起内存泄漏。所以我们引入智能指针。
三、智能指针的发展