能不能举一个shared_ptr代码例子
时间: 2023-03-25 21:02:19 浏览: 72
C++智能指针
当然可以,下面是一个 shared_ptr 的代码例子:
```
#include <iostream>
#include <memory>
int main() {
std::shared_ptr<int> ptr1(new int(10));
std::shared_ptr<int> ptr2 = ptr1;
std::cout << "ptr1: " << *ptr1 << std::endl;
std::cout << "ptr2: " << *ptr2 << std::endl;
ptr1.reset(new int(20));
std::cout << "ptr1: " << *ptr1 << std::endl;
std::cout << "ptr2: " << *ptr2 << std::endl;
return ;
}
```
这个例子中,我们创建了两个 shared_ptr 对象 ptr1 和 ptr2,它们都指向一个 int 类型的对象,值为 10。然后我们将 ptr2 初始化为 ptr1,这样它们就共享同一个对象。接着,我们通过 ptr1.reset() 函数将 ptr1 指向一个新的 int 对象,值为 20。此时,ptr2 仍然指向原来的对象,值为 10。
阅读全文