- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我阅读了有关 std::enable_shared_from_this
的内容,我了解它的工作原理,但我不明白它旨在解决什么问题?
例如来自这里:What is the usefulness of `enable_shared_from_this`?
class Y: public std::enable_shared_from_this<Y>
{
public:
std::shared_ptr<Y> f()
{
return shared_from_this();
}
};
std::shared_ptr<Y> p(new Y);
std::shared_ptr<Y> q = p->f();
是的,很好,我们可以编写 q=p->f();
,但为什么不直接q = p;
?
一般情况下我们有shared_ptr
,但由于某些原因它在某处
不可用,所以我们必须从this
恢复它,但是如果我们将原始指针从 shared_ptr
传递到 somewhere
那么我们就有问题了,因为如果我们从 获取指针,所有
,并将原始指针传递给某人。shared_ptr
安全都会消失>std::shared_ptr::get
最佳答案
您的类中有一个方法需要分发指向 this 的弱指针或共享指针。不只是返回,还可能调用不同的函数,将指向自身的 shared_ptr 传递给它。
您要么必须使用 shared-ptr-to-this 扩充该方法,将其更改为采用共享 ptr 的非方法,在类中存储指向 this 的弱 ptr,要么从 enable_shared_from_this 继承。
enable_shared_from_this 基本上是“给你自己存储一个 weak_ptr”,在 shared-ptr 创建代码的帮助下对其进行初始化。
关于c++11: std::enable_shared_from_this 现实生活中的例子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33816169/
笙歌 痞性. 剩余 青怏 洒脱 现实 搁浅° 软萌 路途 娼妓 离骚 逐你 微尘 迷魂 ▼ 扎心 堇夏 残年っ ╭淡妆╮ 24K.纯疯 隐痛
我正在尝试不费吹灰之力地实现完全有效的持久性无知。不过我有很多问题: 最简单的选项 这真的很简单——可以像在 SOA 中那样使用 Spring Data 注释对实体进行注释(但让它们真正执行逻辑)?除
我想完成一项简单的任务。 我在可变宽度容器中有一个图像。 容器的宽度可以为 300、400、700 或 900 像素。这是通过媒体查询完成的图像应占据该容器的所有宽度。所以它也将是 300、400、7
我在使用 Storyboards AutoRotation 和 iPhone 时遇到问题。我已经将一个非常简单的项目与 3 个 View Controller 放在一起,并将其上传到 gitHub 以
我是一名优秀的程序员,十分优秀!