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