shared_prt传递
时间: 2023-11-24 13:08:42 浏览: 69
shared_ptr是C++11中的一种智能指针,用于管理动态分配的内存。它可以自动释放内存,避免了手动释放内存的麻烦。shared_ptr的传递可以通过以下两种方式实现:
1.传递shared_ptr本身:可以将shared_ptr作为参数传递给函数或方法,这样可以在函数或方法中使用该指针。在函数或方法中,可以使用shared_ptr的get()方法获取指向的原始指针,也可以使用*运算符获取指向的对象。
2.传递shared_ptr的引用:可以将shared_ptr的引用作为参数传递给函数或方法,这样可以在函数或方法中修改该指针所指向的对象。在函数或方法中,可以使用shared_ptr的reset()方法重新分配内存,也可以使用swap()方法交换两个shared_ptr的指向。
下面是两个shared_ptr传递的例子:
1.传递shared_ptr本身:
```c++
#include <iostream>
#include <memory>
using namespace std;
void print(shared_ptr<int> p) {
cout << "value: " << *p << endl;
}
int main() {
shared_ptr<int> p(new int(10));
print(p);
return 0;
}
```
输出结果为:
```
value: 10
```
2.传递shared_ptr的引用:
```c++
#include <iostream>
#include <memory>
using namespace std;
void reset(shared_ptr<int>& p) {
p.reset(new int(20));
}
int main() {
shared_ptr<int> p(new int(10));
reset(p);
cout << "value: " << *p << endl;
return 0;
}
```
输出结果为:
```
value: 20
```
阅读全文