以下是示例:
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
祖先派生,我需要调用{{} 1}}在构造函数上?
在我的情况下,shared_from_this()
可能是某些继承自T
的类,但并非总是
答案 0 :(得分:0)
std::enable_shared_from_this
不会从T继承,因此这里没有问题。
您无需在CTor中拨打shared_from_this
,当您有this
并需要相应的shared_ptr
时,请拨打该电话。