【发布时间】:2014-04-08 15:58:05
【问题描述】:
除其他外,关于 C++ Primer(第 5 版)中的动态内存的第 (12) 章提到了 shared_ptr 和 unique_ptr 上的几个构造函数,我在网上找不到。我写这个问题是为了澄清这两个构造函数的存在。如果确实存在,请在下面询问有关它们的具体问题
-
shared_ptr<T> p(p2, d):p是shared_ptrp2的副本,除了p使用 可调用对象d代替delete我没有在这里得到删除器上的部分:
p将指向 与p2相同的底层对象,并且引用计数得到 递增 1。在定义p2时,已经有 指定自定义删除器,或使用默认的delete。什么是 在这里指定一个新的删除器有什么意义? -
unique_ptr<T, D> u(d): Nullunique_ptr指向的对象 类型T使用d(必须是D类型的对象)delete的地方现在,这完全有道理。但是,我发现了一个类似的
shared_ptr的构造函数,但unique_ptr没有构造函数
以下是我查看的资源:
shared_ptr:
- http://www.cplusplus.com/reference/memory/shared_ptr/shared_ptr/
- http://en.cppreference.com/w/cpp/memory/shared_ptr/shared_ptr
unique_ptr:
- http://www.cplusplus.com/reference/memory/unique_ptr/unique_ptr/
- http://en.cppreference.com/w/cpp/memory/unique_ptr/unique_ptr
只是想确认它们是否合法?
【问题讨论】:
标签: c++ shared-ptr unique-ptr