這裏是例子:如何從此指針獲取std :: weak_ptr <MyClass>?
tempalate <class T> class MyClass : public T {
public:
MyClass(std::weak_ptr<MyClass> parent) {
//--------------------------------------+
// |
// V
auto child = std::make_shared<MyClass>(this);
}
};
如何做到這一點?如果我需要從std::enable_shared_from_this<MyClass<T>>
推導MyClass
,那麼我該怎麼做沒有多重繼承,因爲MyClass
已經從另一個T
祖先衍生而來,我需要在構造函數上調用shared_from_this()
?
在我的情況T
可能是從enable_shared_from_this<T>
繼承了一些課,但並不總是
多繼承是正確的答案。我不明白爲什麼它是一個問題。 – rodrigo