Shared Pointers declaration

Shared Pointers declaration

本文关键字:declaration Pointers Shared      更新时间:2023-10-16

我正在修改代码,以包含共享指针而不是原始指针。以下声明有效吗?

for(//some loop//){
std::shared_ptr<foo> tmp;
/..do stuff to tmp../
vectorofpointer.push_back(tmp);

此外,一旦tmp超出范围,这会影响我的向量吗?

是的,可以。

请参阅http://en.cppreference.com/w/cpp/memory/shared_ptr/shared_ptr:

1) 默认构造函数构造一个没有托管对象的shared_ptr,即空的shared_ptr

另请参阅http://en.cppreference.com/w/cpp/memory/shared_ptr:

shared_ptr也可能不拥有任何对象,在这种情况下,它被称为空[…]

如果您的向量包含shared_ptr元素,那么在tmp超出范围后,您仍然可以访问所指向的对象,因为引用计数使对象保持活动状态。