ความแตกต่างระหว่างตัวสร้างและตัวทำลาย (พร้อมตาราง)

สารบัญ:

Anonim

ตัวสร้างและตัวทำลายคือคำที่มีความหมายในระดับเดียวกัน เริ่มแรกใช้ตัวสร้างชื่อสำหรับวัตถุที่จะเริ่มต้น เริ่มแรก destructor ใช้สำหรับบุคคลที่ช่วยในการลบวัตถุ ทั้ง Constructor และ Destructor เป็นคำศัพท์สองคำที่เกิดขึ้นจากวงแหวนเดียวกัน แต่ทั้งสองมีความแตกต่างกัน

ตัวสร้างกับตัวทำลาย

ความแตกต่างระหว่าง Constructor และ Destructor คือ Constructor ถูกใช้โดยบุคคลที่ช่วยจัดสรรวัตถุในระยะเวลาหนึ่งโดยเฉพาะ และในทางกลับกัน Destructor ถูกใช้โดยบุคคลที่ช่วยให้เขาหรือเธอคลาดเคลื่อน วัตถุในระยะใดช่วงเวลาหนึ่งโดยเฉพาะ

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

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

ตารางเปรียบเทียบระหว่างตัวสร้างและตัวทำลาย

พารามิเตอร์ของการเปรียบเทียบ

ตัวสร้าง

ตัวทำลาย

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

ตัวสร้างคืออะไร?

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

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

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

Destructor คืออะไร?

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

Destructor นำหน้าด้วยชื่อเสมอ (~) กล่าวโดยย่อ ฟังก์ชัน destructor ดำเนินการในรูปแบบย้อนกลับของฟังก์ชัน constructor โดยบุคคลเมื่อต้องแก้ไขวัตถุในมุมมองภายนอก ต่างจากฟังก์ชันคอนสตรัคเตอร์ ทุกคลาสจะมีตัวทำลายเพียงตัวเดียวเสมอ ด้วยเหตุนี้พวกเขาจึงไม่ยอมรับการโต้แย้งใดๆ

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

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

บทสรุป

ไม่รวมคุณสมบัติเดียวกันทั้งหมดที่คอนสตรัคเตอร์และ destructor มีเกี่ยวกับจำนวนฟังก์ชันและจำนวนคลาสเดียวกันที่มีชื่อเหมือนกัน จะมีความแตกต่างกัน ความแตกต่างอยู่ในคุณลักษณะและลักษณะเฉพาะและในรูปแบบที่ใช้และในบริบทใดที่คอนสตรัคเตอร์และตัวทำลายล้าง

ตัวสร้างคือตัวช่วยในการจัดสรรวัตถุในช่วงเวลาหนึ่ง ๆ และในทางกลับกันตัวทำลายล้างซึ่งช่วยในการเคลื่อนย้ายวัตถุในช่วงเวลาหนึ่ง เราควรทราบความแตกต่างระหว่างคำสองคำนี้คือตัวสร้างและตัวทำลาย

อ้างอิง

ความแตกต่างระหว่างตัวสร้างและตัวทำลาย (พร้อมตาราง)