std::share_ptr的使用举例
时间: 2024-12-18 18:31:42 浏览: 6
`std::shared_ptr`是C++标准库中的智能指针,它用于管理动态分配的对象并自动释放内存。当最后一个持有该对象的`shared_ptr`实例被销毁时,对象会自动删除。以下是一个简单的`std::shared_ptr`使用示例:
```cpp
#include <memory> // 包含shared_ptr头文件
class MyClass {
public:
MyClass(int value) : data(value) {}
int getData() const { return data; }
private:
int data;
};
int main() {
// 创建一个MyClass的共享所有权
std::shared_ptr<MyClass> sharedObject(new MyClass(42));
// 共享所有权可以传递
auto sharedCopy = sharedObject;
// 打印原始对象的数据
std::cout << "Original object's data: " << sharedObject->getData() << "\n";
// 当所有指针消失时,对象会被析构
sharedObject.reset(); // 没有其他引用指向它,所以这里会调用析构函数
sharedCopy.reset(); // 这里也会释放对象
return 0;
}
```
在这个例子中,`sharedObject`和`sharedCopy`都是指向同一份`MyClass`对象的,当它们都被置空(通过`reset()`)后,对象`MyClass(42)`的生命周期结束。
阅读全文