2

这是示例:

tempalate <class T> class MyClass : public T {
    public: 
    MyClass(std::weak_ptr<MyClass> parent) {
         //--------------------------------------+
         //                                      |
         //                                      V
         auto child = std::make_shared<MyClass>(this);
    }
};

怎么做?如果我需要从 派生MyClassstd::enable_shared_from_this<MyClass<T>>我如何在没有多重继承的情况下做到这一点,因为MyClass已经从另一个T祖先派生,我需要调用shared_from_this()构造函数?

在我的情况下T,可能是某个类继承自enable_shared_from_this<T>,但并非总是如此

4

1 回答 1

0

std::enable_shared_from_this不继承自 T,所以这里没有问题。

您不需要调用shared_from_thisCTor,当您拥有this并需要相应的shared_ptr.

于 2012-07-01T12:05:36.013 回答