std::enable_shared_from_this<T>::enable_shared_from_this
来自cppreference.com
<tbody>
</tbody>
constexpr enable_shared_from_this() noexcept; |
(1) | (C++11 起) |
enable_shared_from_this( const enable_shared_from_this& other ) noexcept; |
(2) | (C++11 起) |
构造新的 enable_shared_from_this 对象。值初始化 weak_this 。
参数
| other | - | 要复制的 enable_shared_from_this
|
注解
没有移动构造函数:从派生自 enable_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) |
拥有共享对象所有权语义的智能指针 (类模板) |