1、背景:C++程序设计中,对堆内存的操作非常频繁,堆内存的申请和释放都是由程序员来管理。然而在复杂的场景时很容易导致堆内存泄漏(忘记释放)、内存二次释放和程序出现异常时泄漏等情况。为了更好的管理堆内存因此引入了智能指针。

2、原理:智能指针是一个类,类的构造函数中传入普通指针,析构函数中释放传入的指针;

3、智能指针的作用:防止 忘记释放堆内存、二次释放和程序异常时未释放内存。

4、智能指针的使用:包含在头文件<memory>中.

  •   shared_ptr:多个指针指向相同的对象;
  •  unique_ptr:同一时刻只有一个指针指向unique_ptr对象;
  •  weak_ptr:不具备普通指针的行为,协助shared_ptr工作;

 

posted on 2020-05-24 21:24  Love63  阅读(126)  评论(0编辑  收藏  举报