C++中shared_ptr赋值操作
时间: 2023-10-17 15:03:54 浏览: 79
详解C++中shared_ptr的使用教程
在C++中,shared_ptr是一种智能指针,用于管理动态分配的对象,以确保在不再需要该对象时正确地释放其内存。shared_ptr支持赋值操作,它可以将一个shared_ptr的所有权转移给另一个shared_ptr。
shared_ptr的赋值操作有两种方式:
1. 使用赋值运算符:可以使用普通的赋值运算符将一个shared_ptr的所有权转移给另一个shared_ptr。例如:
```
std::shared_ptr<int> p1(new int(10));
std::shared_ptr<int> p2 = p1; // 将p1的所有权转移到p2
```
2. 使用reset()函数:也可以使用reset()函数将一个shared_ptr的所有权转移给另一个shared_ptr。例如:
```
std::shared_ptr<int> p1(new int(10));
std::shared_ptr<int> p2;
p2.reset(p1.get()); // 将p1的所有权转移到p2
```
在这两种情况下,p1将失去对其动态分配的对象的所有权,p2将成为该对象的唯一所有者。需要注意的是,如果多个shared_ptr共享同一个对象,当其中任何一个shared_ptr被销毁时,该对象的内存将被自动释放。
阅读全文