例子如下:
tempalate <class T> class MyClass : public T {
public:
MyClass(std::weak_ptr<MyClass> parent) {
//--------------------------------------+
// |
// V
auto child = std::make_shared<MyClass>(this);
}
};
该怎么做?如果我需要导出 MyClass
来自 std::enable_shared_from_this<MyClass<T>>
,我如何在没有多重继承的情况下做到这一点,因为MyClass
已经派生自另一个 T
祖先,我需要调用shared_from_this()
在构造函数上?
以我为例 T
可能是从 enable_shared_from_this<T>
继承的某个类, 但并不总是
最佳答案
std::enable_shared_from_this
没有继承自T,所以这里没有问题。
您不需要在 CTor 中调用 shared_from_this
,当您有 this
并且需要相应的 shared_ptr
时,您会调用它。
关于c++ - 如何从此指针获取 std::weak_ptr<MyClass> ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11281478/