Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

คัดลอกและสลับสำนวนใน C++


การมอบหมายประกอบด้วย 2 ขั้นตอน ฉีกสถานะเก่าของวัตถุและสร้างสถานะใหม่ให้กับวัตถุ ตัวทำลายจะใช้สำหรับขั้นตอนแรกและตัวสร้างการคัดลอกจะทำขั้นตอนที่สอง

การดำเนินการทั้งสองอย่างตรงไปตรงมา แต่เมื่อโอเวอร์โหลดโอเปอเรเตอร์การมอบหมายงาน อาจเป็นเรื่องยากที่จะนำไปใช้ การคัดลอกและ swapidiom เป็นวิธีแก้ปัญหาเดียวกัน

สำนวนนี้ใช้ตัวสร้างสำเนาเพื่อสร้างสำเนาข้อมูลในเครื่อง จากนั้นจะสลับข้อมูลเก่ากับข้อมูลใหม่โดยใช้ฟังก์ชันสลับ สำเนาชั่วคราวจะถูกทำลายโดยใช้ตัวทำลาย ในที่สุดเราก็มีสำเนาของข้อมูลใหม่เท่านั้น

ดังนั้น สำนวน copy-and-swap ต้องการสามสิ่ง

  • ตัวสร้างสำเนา
  • ตัวสร้างสำเนา
  • ตัวทำลาย
  • ฟังก์ชันสลับ

ฟังก์ชัน swap คือฟังก์ชันที่ไม่ทำการโยนซึ่งสลับสองอ็อบเจ็กต์ของคลาส นั่นคือ themember

หมายเหตุ :คุณต้องไม่ใช้ฟังก์ชัน std::swap เนื่องจากภายในใช้ตัวดำเนินการคัดลอกคอนสตรัคเตอร์และมอบหมายเพื่อให้เกิดสิ่งเดียวกัน