在C++中,我们可以通过引用或者值传递shared_ptr。选择使用哪种方式取决于具体的情况和需求。
int main() {
std::shared_ptr<int> ptr = std::make_shared<int>(10);
foo(ptr);
// ptr指向被修改为42
return 0;
}
```
int main() {
std::shared_ptr<int> ptr = std::make_shared<int>(10);
bar(ptr);
// ptr仍然指向原来的对象
return 0;
}
```
需要注意的是,无论是引用传递还是值传递shared_ptr,都需要确保在函数内部不会超出shared_ptr的生命周期,以避免悬空指针的问题。此外,对于多线程环境下的共享资源,还需要考虑使用适当的同步机制来保护shared_ptr的访问。
领取专属 10元无门槛券
手把手带您无忧上云