【发布时间】:2015-08-10 16:14:13
【问题描述】:
在第 91 页的 the book The C++ Standard Library 中,我读到了有关 shared_from_this() 的内容:
问题是
shared_ptr将自己存储在Person的基类,enable_shared_from_this<>,在末尾strong> 人的构造。
书中相关代码sn-p为:
class Person : public std::enable_shared_from_this<Person> {
...
};
这里有两点我不明白:
- 谁是
shared_ptr,它自己存储? - 他如何在
Person的构造结束时将自己存储在任何地方?我认为Person的构造以我编写的构造函数的最后一条语句结束。
我了解到有 weak_ptr 尚未初始化。
编辑:
感谢安吉! shared_from_this 只有在第一个 shared_ptr 到 Person 被创建后才能工作。这个shared_ptr 将检查Person 类是否继承自enable_shared_from_this,如果是,则初始化其内部weak_ptr。
【问题讨论】:
-
我没有意识到你可能只是在问这些Notes
-
@MarcoA。太好了,这些笔记真的很有帮助!
标签: c++ constructor shared-ptr