ความแตกต่างระหว่างตัวสร้างกับตัวทำลาย

สารบัญ:

ความแตกต่างระหว่างตัวสร้างกับตัวทำลาย
ความแตกต่างระหว่างตัวสร้างกับตัวทำลาย

วีดีโอ: ความแตกต่างระหว่างตัวสร้างกับตัวทำลาย

วีดีโอ: ความแตกต่างระหว่างตัวสร้างกับตัวทำลาย
วีดีโอ: สรุป วิทยาศาสตร์ ม.2 - สารละลาย (1/2) | Bio-oei 2024, พฤศจิกายน
Anonim

ความแตกต่างที่สำคัญ – ตัวสร้าง 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 ที่นี่: ความแตกต่างระหว่างตัวสร้างและตัวทำลาย