「this」的std::shared_ptr:理解循環依賴
繼承std::::able_shared_from_this是解決「stdd」的關鍵shared_ptr 這個「難題。透過啟用此功能,您可以呼叫.shared_from_this() 來取得指向目前物件的共用指標。但是,這會在父物件和子物件之間引入潛在的循環依賴關係。
要解決此問題,建議使用std::weak_ptr 作為子物件對父物件的參考。 pre>
class A : public std::enable_shared_from_thisprivate :void addChild(std::shared_ptr<B> child) { children.push_back(child); child->setParent(shared_from_this()); }};std::list
私有:
void setParent(std::shared_ptr<A> parent) { this->parent = parent; }};
std::shared_ptr<A> parent;要注意的是,呼叫shared_from_this() 要求當前物件在呼叫時由std::shared_ptr 管理。
以上是使用「this」的 std::shared_ptr 時如何防止循環依賴?的詳細內容。更多資訊請關注PHP中文網其他相關文章!