什么是智能指针,C++有哪几种智能指针

2 分钟阅读 284 字 + 265 词
参考答案
智能指针是C++中用来 自动管理动态分配内存的一种模板类 ,维护着一个 指向动态分配对象 的指针,并在智能指针对象被销毁时,自动释放该内存,从而 避免内存泄漏
C++有以下几种智能指针:
  • std::unique_ptr 独占式拥有指针 ,保证同一时间只有一个 unique_ptr 指向特定内存,适用于不需要共享所有权的场景,如栈上对象的管理。
  • std::shared_ptr :多个 shared_ptr 可以共享同一内存,使用 引用计数机制 来管理内存的生命周期,适用于多个对象需要共享同一个资源的场景。
  • std::weak_ptr 弱引用 ,不会增加指向对象的共享引用计数,并还可以通过Lock方法提升成为shared_ptr,可以用于 解决 shared_ptr 可能导致的 循环引用 问题,但不是说他只用来解决这个问题,根据不同的业务场景,可以灵活使用,比如用它去监视一个对象,不用参与这个对象的生命周期管理,它不拥有所指向的对象。