http://www.cplusplus.com/reference/memory/shared_ptr/shared_ptr/
default (1) constexpr shared_ptr() noexcept;
from null pointer (2) constexpr shared_ptr(nullptr_t) : shared_ptr() {}
from pointer (3) template <class U> explicit shared_ptr (U* p);
with deleter (4) template <class U, class D> shared_ptr (U* p, D del);
template <class D> shared_ptr (nullptr_t p, D del);
with allocator (5) template <class U, class D, class Alloc> shared_ptr (U* p, D del, Alloc alloc);
template <class D, class Alloc> shared_ptr (nullptr_t p, D del, Alloc alloc);
copy (6) shared_ptr (const shared_ptr& x) noexcept;
template <class U> shared_ptr (const shared_ptr<U>& x) noexcept;
copy from weak (7) template <class U> explicit shared_ptr (const weak_ptr<U>& x);
move (8) shared_ptr (shared_ptr&& x)

本文详细介绍了C++中shared_ptr的构造函数,特别是aliasing构造函数的工作原理。讲解了stored pointer和引用计数的关系,以及如何在没有对应类型对象时使用aliasing构造函数创建shared_ptr。此外,还提到了D deleter参数,说明了shared_ptr不仅管理对象内存,还管理deleter的生命周期。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



