2
これのstd :: shared_ptr
私は現在、スマートポインターの使用方法を学習しようとしています。しかし、いくつかの実験を行っているときに、満足のいく解決策を見つけることができない次の状況を発見しました。 クラスAのオブジェクトがクラスB(子)のオブジェクトの親であるとしますが、両方がお互いを知っている必要があります。 class A; class B; class A { public: void addChild(std::shared_ptr<B> child) { children->push_back(child); // How to do pass the pointer correctly? // child->setParent(this); // wrong // ^^^^ } private: std::list<std::shared_ptr<B>> children; }; class B { public: setParent(std::shared_ptr<A> parent) { this->parent = parent; }; private: std::shared_ptr<A> parent; }; 問題は、クラスAのオブジェクトstd::shared_ptrがそれ自体の(this)をその子にどのように渡すことができるかです。 …