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; …