shared_ptr两种构造
时间: 2023-09-04 12:11:14 浏览: 102
shared_ptr
shared_ptr是C++中的智能指针之一,它用于管理动态分配的对象,并在不再需要时自动释放内存。shared_ptr有两种常见的构造方式:
1. 使用默认构造函数:可以直接创建一个空的shared_ptr对象,如:
```
std::shared_ptr<int> ptr; // 创建一个空的shared_ptr对象
```
2. 使用构造函数,传递指向动态分配对象的指针:可以通过传递指向动态分配对象的指针来创建shared_ptr对象,如:
```
int *rawPtr = new int(42);
std::shared_ptr<int> ptr(rawPtr); // 创建一个shared_ptr对象,管理rawPtr所指向的对象
```
在这种情况下,shared_ptr将使用引用计数来跟踪指针的引用次数,以便在不再有任何引用时自动释放内存。
需要注意的是,使用shared_ptr时应当避免循环引用,即两个或更多的shared_ptr对象相互持有对方的指针,这样会导致内存泄漏。可以使用weak_ptr来解决循环引用的问题。
阅读全文