ความแตกต่างที่สำคัญ – ตัวสร้าง vs ตัวทำลาย
ภาษาโปรแกรมส่วนใหญ่รองรับการเขียนโปรแกรมเชิงวัตถุ (OOP) เป็นกระบวนทัศน์ที่ช่วยในการสร้างแบบจำลองซอฟต์แวร์หรือโปรแกรมโดยใช้วัตถุ OOP ช่วยเพิ่มผลผลิตและการบำรุงรักษา ใน OOP ทุกสิ่งถือเป็นวัตถุ อ็อบเจ็กต์ถูกสร้างขึ้นหรือสร้างอินสแตนซ์โดยใช้คลาส Constructor และ Destructor เป็นคำศัพท์ทั่วไปในการเขียนโปรแกรมเชิงวัตถุ บทความนี้กล่าวถึงความแตกต่างระหว่างตัวสร้างและตัวทำลาย ตัวสร้างและตัวทำลายเป็นฟังก์ชันพิเศษของสมาชิกในคลาส ตัวสร้างและตัวทำลายล้างมีชื่อเดียวกับคลาส แต่ตัวทำลายล้างมีเครื่องหมายตัวหนอน (~)ความแตกต่างที่สำคัญระหว่าง Constructor และ Destructor คือ Constructor ใช้เพื่อจัดสรรหน่วยความจำให้กับวัตถุในขณะที่ Destructor ถูกใช้เพื่อจัดสรรหน่วยความจำของอ็อบเจกต์
ตัวสร้างคืออะไร
คอนสตรัคเตอร์เป็นฟังก์ชันสมาชิกพิเศษในคลาสเพื่อจัดสรรหน่วยความจำให้กับวัตถุ สามารถใช้เพื่อให้ค่าสำหรับสมาชิกข้อมูล ตัวสร้างถูกเรียกเมื่อวัตถุถูกสร้างขึ้น มีชื่อเดียวกับชื่อชั้น ตัวสร้างไม่คืนค่าใด ๆ ดังนั้นจึงไม่มีประเภทการส่งคืน ตัวสร้างยังสามารถยอมรับพารามิเตอร์ได้ ตัวสร้างที่มีพารามิเตอร์เรียกว่าตัวสร้างพารามิเตอร์
ตัวอย่าง Constructor มีดังต่อไปนี้
เรียนสาธารณะ สี่เหลี่ยมผืนผ้า{
ยาว กว้าง
สาธารณะ สี่เหลี่ยมผืนผ้า(int p, int q){
length=p;
กว้าง=q;
}
สาธารณะ int คำนวณพื้นที่(){
คืน (ยาวกว้าง);
}
}
ตามโค้ดด้านบน ตัวสร้างมีชื่อเดียวกับชื่อคลาส คอนสตรัคเตอร์ Rectangle ยอมรับสองพารามิเตอร์ พวกมันคือ p และ q ค่าจำนวนเต็ม p ถูกกำหนดให้กับความยาว ค่าจำนวนเต็ม q ถูกกำหนดให้กับความกว้าง ใน calcu alteArea จะคำนวณการคูณของความยาวและความกว้างเพื่อหาพื้นที่ของสี่เหลี่ยมผืนผ้า ในโปรแกรมหลัก โปรแกรมเมอร์สามารถสร้างอ็อบเจ็กต์ประเภท Rectangle และส่งผ่านอาร์กิวเมนต์ได้ เช่น. สี่เหลี่ยมผืนผ้า rect1=ใหม่ สี่เหลี่ยมผืนผ้า (2, 3) จากนั้น ตัวสร้างพารามิเตอร์จะถูกเรียกและกำหนดค่าให้กับความยาวและความกว้าง
รูปที่ 01: ตัวสร้างและตัวทำลาย
เมื่อมีคอนสตรัคเตอร์ที่ไม่มีพารามิเตอร์ เรียกว่าคอนสตรัคเตอร์เริ่มต้นหากโปรแกรมเมอร์ไม่ได้กำหนดคอนสตรัคเตอร์ คอนสตรัคเตอร์เริ่มต้นจะถูกเรียกใช้ หากมีคลาสเป็น Student และเมื่อโปรแกรมเมอร์สร้างวัตถุประเภท Student ตัวสร้างเริ่มต้นจะถูกเรียก เช่น. นักเรียน s1=นักเรียนใหม่(); อาจมีตัวสร้างหลายตัวที่มีพารามิเตอร์ต่างกันและประเภทข้อมูลต่างกันในชั้นเรียน ตัวสร้างที่เหมาะสมสามารถเรียกได้ตามนั้น ดังนั้น ตัวสร้างสามารถโอเวอร์โหลดได้
ตัวทำลายคืออะไร
ตัวทำลายคือฟังก์ชันพิเศษของสมาชิกในชั้นเรียน มันถูกใช้เพื่อยกเลิกการจัดสรรหน่วยความจำสำหรับวัตถุที่สร้างโดยตัวสร้าง Destructor ถูกเรียกใช้เมื่อวัตถุถูกทำลาย ดำเนินการจัดเก็บการล้างข้อมูลที่ไม่จำเป็นอีกต่อไป เช่นเดียวกับตัวสร้าง destructor มีชื่อเหมือนกับคลาส นอกจากนี้ยังมีสัญลักษณ์ตัวหนอน (~)
ตัวทำลายไม่คืนค่าใดๆ ตัวทำลายไม่ยอมรับพารามิเตอร์ใด ๆ ต่างจากตัวสร้าง ดังนั้น destructor ไม่รองรับการโอเวอร์โหลดการประกาศ destructor ถือเป็นแนวทางปฏิบัติในการเขียนโปรแกรมที่ดี เนื่องจากเป็นการปล่อยพื้นที่หน่วยความจำ และพื้นที่นั้นสามารถใช้สำหรับจัดเก็บวัตถุอื่นๆ ไวยากรณ์ของ destructor คล้ายกับ ~className() { } เช่น. ~สี่เหลี่ยมผืนผ้า() { }; ในชั้นเรียนจะมีผู้ทำลายได้เพียงคนเดียว
ความคล้ายคลึงกันระหว่างตัวสร้างกับตัวทำลายคืออะไร
- ทั้งตัวสร้างและตัวทำลายสัมพันธ์กับวัตถุ
- ทั้งตัวสร้างและตัวทำลายไม่คืนค่าใดๆ
- ทั้งตัวสร้างและตัวทำลายถูกเรียกโดยอัตโนมัติ
ความแตกต่างระหว่างตัวสร้างกับตัวทำลายคืออะไร
ผู้สร้าง vs ผู้ทำลาย |
|
คอนสตรัคเตอร์เป็นสมาชิกพิเศษในชั้นเรียนที่ใช้เพื่อจัดสรรหน่วยความจำให้กับวัตถุ | ตัวทำลายคือสมาชิกพิเศษของคลาสที่ใช้เพื่อจัดสรรหน่วยความจำของวัตถุ |
วิธีการเรียก | |
ตัวสร้างถูกเรียกเมื่อวัตถุถูกสร้างขึ้น | ตัวทำลายจะถูกเรียกเมื่อวัตถุถูกทำลายหรือถูกลบ |
การใช้งาน | |
ตัวสร้างใช้เพื่อจัดสรรหน่วยความจำสำหรับวัตถุ | ตัวทำลายใช้สำหรับจัดสรรหน่วยความจำสำหรับวัตถุ |
พารามิเตอร์ | |
คอนสตรัคเตอร์ยอมรับพารามิเตอร์ | ตัวทำลายล้างไม่ยอมรับพารามิเตอร์ |
จำนวนตัวสร้างและตัวทำลาย | |
สามารถมีตัวสร้างหลายตัวที่มีจำนวนพารามิเตอร์และประเภทพารามิเตอร์ต่างกัน | มีตัวทำลายเดียวในชั้นเรียน |
ความเร็วในการดำเนินการ | |
คอนสตรัคเตอร์มีชื่อเดียวกับชื่อคลาส | ตัวทำลายมีชื่อเดียวกับชื่อคลาสที่มีสัญลักษณ์ตัวหนอน (~) |
โอเวอร์โหลด | |
ตัวสร้างสามารถโอเวอร์โหลดได้ | ตัวทำลายไม่สามารถโอเวอร์โหลดได้ |
สรุป – ตัวสร้าง vs ตัวทำลาย
OOP เป็นกระบวนทัศน์ทั่วไปในการพัฒนาซอฟต์แวร์ สามารถทำให้โครงการที่ซับซ้อนง่ายขึ้นได้ ตัวสร้างและตัวทำลายถูกใช้ใน OOP ตัวสร้างและตัวทำลายมีชื่อเดียวกับคลาส แต่ตัวทำลายมีเครื่องหมาย ~ความแตกต่างระหว่าง Constructor และ Destructor คือ Constructor ใช้เพื่อจัดสรรหน่วยความจำให้กับวัตถุในขณะที่ Destructor ถูกใช้เพื่อจัดสรรหน่วยความจำคืนของวัตถุ
ดาวน์โหลดไฟล์ PDF ของ Constructor vs Destructor
คุณสามารถดาวน์โหลดไฟล์ PDF ของบทความนี้และใช้เพื่อวัตถุประสงค์ออฟไลน์ตามหมายเหตุอ้างอิง โปรดดาวน์โหลดไฟล์ PDF ที่นี่: ความแตกต่างระหว่างตัวสร้างและตัวทำลาย