std::enable_shared_from_this<T>::enable_shared_from_this
< cpp | memory | enable shared from this
constexpr enable_shared_from_this() noexcept; |
(1) | (C++11 起) |
enable_shared_from_this( const enable_shared_from_this<T>&obj ) noexcept; |
(2) | (C++11 起) |
构造新的 enable_shared_from_this
对象。值初始化私有 std::weak_ptr<T> 成员。
参数
obj | - | 要复制的 enable_shared_from_this
|
注意
无移动构造函数:从导出自 shared_from_this
的对象移动不转移其共享身份。
示例
运行此代码
#include <memory> struct Foo : public std::enable_shared_from_this<Foo> { Foo() {} // 隐式调用 enable_shared_from_this 构造函数 std::shared_ptr<Foo> getFoo() { return shared_from_this(); } }; int main() { std::shared_ptr<Foo> pf1(new Foo); auto pf2 = pf1->getFoo(); // 与 pf1 共享对象所有权 }
参阅
(C++11) |
拥有共享对象所有权语义的智能指针 (类模板) |