# 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 共享对象所有权
    }

### 参阅

shared_ptr (C++11) | 拥有共享对象所有权语义的智能指针 (类模板)