智能指针

智能指针

  • 一级目录
    • 二级目录
      • 三级目录

一级目录

为什么要用智能指针?
在C++程序里,使用new关键字开辟的内存必须被手动delete掉,不然就会导致内存的泄漏,但是,当程序非常冗长,你能保证自己每一个手动开辟的内存块都释放了吗?在delete之前,倘若程序因为异常跳转后,你还能保证内存被释放吗?为了解决这种因为遗忘或者异常处理而导致内存泄漏的问题,我们就要用智能指针。
智能指针运用了一种叫做RAII的技术,即利用对象生命周期来控制程序资源的技术,这中技术的思想就是在构建对象时获取我们资源的指针,接着控制对资源的访问使之在对象的生命周期内一直保持有效,在对象析构时释放指针对应的内存块。这样,内存块的管理与释放就完全交给了一个对象,这样做的好处有两点:
不需要显示的释放资源
对象所需的资源在其生命周期内始终有效。
程序使用动态内存的原因:
1.
程序不知道自己需要使用多少对象;
2.
程序不知道所需对象的准确类型;
3.
程序需要再多个对象间共享数据;

不要对智能指针进行new和delete;不能把智能指针定义在全局区;

二级目录

三级目录

你可能感兴趣的:(智能指针,c++)