คำถามติดแท็ก this-pointer

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

2
เมื่อแลมบ์ดาจับตัวนี้แล้วจะต้องใช้อย่างชัดเจนหรือไม่?
ตัวอย่างที่ฉันพบว่าการจับภาพthisในแลมบ์ดาใช้อย่างชัดเจน เช่น: capturecomplete = [this](){this->calstage1done();}; แต่ดูเหมือนว่ามันเป็นไปได้ที่จะใช้มันโดยปริยาย เช่น: capturecomplete = [this](){calstage1done();}; ฉันทดสอบสิ่งนี้ใน g ++ และรวบรวมมัน C ++ มาตรฐานนี้หรือไม่ (และถ้าเป็นเช่นนั้นเวอร์ชันใด) หรือเป็นรูปแบบของส่วนขยายบางส่วน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.