c++共享指针使用方式
时间: 2023-11-02 20:53:09 浏览: 132
C++指针使用方法
5星 · 资源好评率100%
C++中的共享指针使用方式可以通过使用智能指针来实现。在C++11及以上的标准中,可以使用std::shared_ptr来管理共享资源。
以下是使用共享指针的基本步骤:
1. 包含头文件:
```cpp
#include <memory>
```
2. 创建共享指针:
```cpp
std::shared_ptr<int> sharedPtr(new int); // 使用new关键字初始化指针,引用计数为1
```
3. 共享指针的拷贝:
```cpp
std::shared_ptr<int> sharedPtr2 = sharedPtr; // 创建sharedPtr的副本,引用计数加1
```
4. 访问指针所指向的对象:
```cpp
int value = *sharedPtr; // 解引用共享指针获取对象的值
```
5. 释放共享指针:
```cpp
sharedPtr.reset(); // 引用计数减1,如果引用计数为0,则释放指针所指向的对象内存
```
6. 检查共享指针是否为空:
```cpp
if (sharedPtr != nullptr) {
// 共享指针不为空,可以访问其所指向的对象
}
```
7. 使用共享指针作为函数参数:
```cpp
void foo(std::shared_ptr<int> ptr) {
// 在函数内部使用共享指针
}
std::shared_ptr<int> sharedPtr(new int);
foo(sharedPtr); // 将共享指针作为函数参数传递
```
注意事项:
- 避免使用原始指针与共享指针混合使用,这可能导致引用计数错误。
- 避免循环引用,即两个或多个共享指针相互引用,导致引用计数无法减为0,从而导致内存泄漏。
这是一种常见的使用共享指针的方式,但在实际使用时,请根据具体场景和需求选择适合的智能指针类型。
阅读全文