Shared Pointers declaration
Shared Pointers declaration
我正在修改代码,以包含共享指针而不是原始指针。以下声明有效吗?
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
超出范围后,您仍然可以访问所指向的对象,因为引用计数使对象保持活动状态。
相关文章:
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- Declaration of IntRect SFML
- 如何区分C++中的"using declaration"和"using directive"?
- 为什么别名声明不是有效的 init 语句(/simple-declaration)?
- python ctypes and C++ pointers
- arrayfire, pointers, and c++
- 静态数据成员:它"const declaration / constexpr definition"起作用?
- SFINAE:"enable_if cannot be used to disable this declaration"
- 如何理解"abstract-declarator containing an ellipsis shall only be used in a parameter-declaration"
- 如何修复"expected a declaration"?
- 修改C++中的"Const Char Pointers"
- C++ 结构数组 - "This declaration has no storage class or type specifier"
- 警告"C++ requires a type specifier for all declaration"地图
- 根据标准,究竟什么是"declaration of an object"
- 'Cannot add two pointers'添加带有 WCHAR 的 LPCWSTR
- C++ 中的"this declaration has no storage class or type specifier"错误
- 为什么海湾合作委员会抱怨"declaration of 'foo' shadows a previous call [-Werror=shadow]"
- #define 的"Declaration does not declare anything"错误
- "How to use long long data-type rather than pointers data-type to modify other variables ?"
- Shared Pointers declaration