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

กฎสามข้อใน C++


กฎสามข้อเป็นกฎง่ายๆ เมื่อใช้ C++ นี่เป็นแนวปฏิบัติที่ดีที่บอกว่าถ้าชั้นเรียนของคุณต้องการสิ่งใด

  • ตัวสร้างการคัดลอก
  • ผู้ดำเนินการมอบหมาย
  • หรือผู้ทำลาย

กำหนดไว้อย่างชัดเจนจึงมีแนวโน้มว่าจะต้องใช้ทั้งสามอย่าง

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

1. คัดลอกตัวสร้าง − คอนสตรัคเตอร์การคัดลอกที่คอมไพเลอร์จัดหาจะทำสำเนาคุณลักษณะทั้งหมดของ Foo Manager แบบสมาชิก สิ่งนี้ทำให้เกิดปัญหาเช่นเดียวกับผู้ดำเนินการมอบหมาย

2. ผู้ดำเนินการมอบหมาย − หากคุณไม่ได้จัดเตรียมไว้ คอมไพเลอร์จะสร้างตัวดำเนินการกำหนดค่าเริ่มต้น การดำเนินการกำหนดเริ่มต้นเป็นฟังก์ชันคัดลอกแบบสมาชิกและจะทำสำเนาแบบตื้นและไม่ใช่แบบลึก ซึ่งอาจทำให้เกิดปัญหา เช่น หน่วยความจำรั่ว การมอบหมายผิด

3. ตัวทำลาย − เมื่อผู้จัดการรายนี้อยู่นอกขอบเขต ควรจะปล่อยทรัพยากรทั้งหมดที่จัดการอยู่