shared_ptr有哪些成员函数
时间: 2023-10-17 21:01:02 浏览: 73
shared_ptr线程安全性全面分析
`std::shared_ptr` 是 C++ 标准库中的一个智能指针类,它提供了一些成员函数来管理和操作共享指针的资源。以下是 `std::shared_ptr` 的一些常用成员函数:
1. `explicit shared_ptr(T* ptr = nullptr)`:构造函数,用于创建一个 shared_ptr 对象,并关联指定的原始指针。
2. `shared_ptr(const shared_ptr& other)`:拷贝构造函数,用于创建一个共享指向同一资源的 shared_ptr 对象。
3. `shared_ptr& operator=(const shared_ptr& other)`:拷贝赋值运算符,用于将一个 shared_ptr 对象赋值给另一个对象。
4. `T* get() const`:返回与 shared_ptr 关联的原始指针。
5. `long use_count() const`:返回与 shared_ptr 共享资源的指针计数。
6. `bool unique() const`:检查 shared_ptr 是否是唯一拥有资源的指针。
7. `void reset(T* ptr = nullptr)`:重置 shared_ptr 的关联资源,可选择关联新的原始指针。
8. `void swap(shared_ptr& other)`:交换两个 shared_ptr 对象的关联资源。
9. `T& operator*() const`:解引用操作符,返回共享指针所管理资源的引用。
10. `T* operator->() const`:箭头操作符,返回共享指针所管理资源的指针。
除了上述成员函数外,`std::shared_ptr` 还提供了一些其他的成员函数,如自定义删除器、自定义分配器等,以及与其他类型智能指针的互操作性函数(如转换为 `std::weak_ptr`、`std::unique_ptr` 等)。这些函数可以根据具体需求进行使用。
阅读全文