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

กฎของสาม (Rule of Three) ใน C++ คืออะไร?

กฎของสาม (Rule of Three) เป็นกฎทั่วไป (rule of thumb) ในการใช้ C++ เป็นแนวทางปฏิบัติที่ดี ซึ่งระบุว่า หากคลาสของคุณต้องการกำหนดอย่างชัดเจน (explicitly define) ฟังก์ชันใดฟังก์ชันหนึ่งต่อไปนี้:

  • Copy Constructor
  • Assignment Operator
  • Destructor

แล้วมันน่าจะต้องการทั้งสามฟังก์ชัน

ทำไมถึงเป็นเช่นนั้น? เพราะถ้าคลาสของคุณต้องการฟังก์ชันใดฟังก์ชันหนึ่งข้างต้น แสดงว่ามันกำลังจัดการทรัพยากรที่จัดสรรแบบไดนามิก (dynamically allocated resources) และน่าจะต้องการอีกสองฟังก์ชันเพื่อจัดการทรัพยากรเหล่านั้นให้สำเร็จ ตัวอย่างเช่น หากคุณต้องการ Assignment Operator คุณจะสร้างสำเนาของออบเจ็กต์ที่กำลังถูกคัดลอกโดยอ้างอิง (reference) ดังนั้นจึงจัดสรรทรัพยากร คุณจะต้องการ Copy Constructor สำหรับการคัดลอก และ Destructor สำหรับการปล่อยทรัพยากรเหล่านั้น