std::shared_ptr
是 C++ 标准库中的一种智能指针,用于管理动态分配的对象的内存生命周期。它通过引用计数机制来实现多个指针共享同一个对象,并在最后一个 std::shared_ptr
离开作用域时自动释放内存。以下是 std::shared_ptr
的适用场景和注意事项:
适用场景
1. 共享所有权
- 当多个对象需要共享同一个资源,并且无法确定哪个对象最后使用该资源时,可以使用
std::shared_ptr
。 - 示例:
std::shared_ptr<int> ptr1 = std::make_shared<int>(42); std::shared_ptr<int> ptr2 = ptr1; // ptr1 和 ptr2 共享同一个资源
2. 需要延长对象的生命周期
- 当对象的生命周期需要延长到多个作用域或函数调用时,可以使用
std::shared_ptr
。 - 示例:
std::shared_ptr<MyClass> createObject() { return std::make_shared