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)的a传递给它的子对象? …