คำถามติดแท็ก move-assignment-operator

3
เงื่อนไขสำหรับการสร้าง ctor เริ่มต้น / คัดลอก / ย้ายอัตโนมัติและตัวดำเนินการกำหนดสำเนา / ย้าย?
ฉันต้องการรีเฟรชหน่วยความจำของฉันตามเงื่อนไขที่คอมไพลเลอร์มักสร้างตัวสร้างเริ่มต้นตัวสร้างการคัดลอกและตัวดำเนินการกำหนดโดยอัตโนมัติ ฉันจำได้ว่ามีกฎบางอย่าง แต่ฉันจำไม่ได้และยังไม่พบแหล่งข้อมูลที่มีชื่อเสียงทางออนไลน์ ใครสามารถช่วย?

6
ย้ายตัวดำเนินการกำหนดและ "if (this! = & rhs)"
ในตัวดำเนินการมอบหมายของคลาสคุณมักจะต้องตรวจสอบว่าออบเจ็กต์ที่ถูกกำหนดเป็นอ็อบเจกต์ที่เรียกใช้หรือไม่เพื่อที่คุณจะได้ไม่พลาด: Class& Class::operator=(const Class& rhs) { if (this != &rhs) { // do the assignment } return *this; } คุณต้องการสิ่งเดียวกันสำหรับตัวดำเนินการมอบหมายการย้ายหรือไม่? เคยมีสถานการณ์ที่this == &rhsจะเป็นจริงหรือไม่? ? Class::operator=(Class&& rhs) { ? }
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.