次に例を示します。
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>
が、常にではありません