ตัวสร้างและตัวทำลายคือคำที่มีความหมายในระดับเดียวกัน เริ่มแรกใช้ตัวสร้างชื่อสำหรับวัตถุที่จะเริ่มต้น เริ่มแรก destructor ใช้สำหรับบุคคลที่ช่วยในการลบวัตถุ ทั้ง Constructor และ Destructor เป็นคำศัพท์สองคำที่เกิดขึ้นจากวงแหวนเดียวกัน แต่ทั้งสองมีความแตกต่างกัน
ตัวสร้างกับตัวทำลาย
ความแตกต่างระหว่าง Constructor และ Destructor คือ Constructor ถูกใช้โดยบุคคลที่ช่วยจัดสรรวัตถุในระยะเวลาหนึ่งโดยเฉพาะ และในทางกลับกัน Destructor ถูกใช้โดยบุคคลที่ช่วยให้เขาหรือเธอคลาดเคลื่อน วัตถุในระยะใดช่วงเวลาหนึ่งโดยเฉพาะ
มีฟังก์ชันมากมายในปัจจุบัน และนอกเหนือจากนั้นคือหน้าที่ของ Constructor ซึ่งช่วยในการจัดสรรหน่วยความจำของอ็อบเจ็กต์เพื่อช่วยให้ได้รับการกำหนดค่าเริ่มต้น มันง่ายมากที่จะระบุว่าตัวใดเป็นคอนสตรัคเตอร์เนื่องจากถูกกำหนดอย่างดีสำหรับชื่อของพวกเขาด้วยคลาสเดียวกัน การก่อสร้างทุกครั้งจะมีชื่ออยู่ในหมวดที่เป็นสาธารณะ
มีฟังก์ชันบางอย่างในคลาสสำหรับทำสิ่งต่าง ๆ กับอ็อบเจ็กต์ และหนึ่งในนั้นคือฟังก์ชัน destructor ในคลาส ซึ่งช่วยคลาดเคลื่อนอ็อบเจกต์ที่ได้รับการจัดสรรก่อนหน้านี้ผ่านคอนสตรัคเตอร์ มันมักจะถูกตั้งชื่อโดยบุคคลที่มีชื่อเดียวกัน
ตารางเปรียบเทียบระหว่างตัวสร้างและตัวทำลาย
พารามิเตอร์ของการเปรียบเทียบ | ตัวสร้าง | ตัวทำลาย |
ฟังก์ชั่นหลัก | มีการจัดสรรหน่วยความจำของวัตถุในฟังก์ชันนี้ | มี a=dis-allocation ของหน่วยความจำของวัตถุในฟังก์ชันนี้ |
ข้อโต้แย้ง | มีการยอมรับอาร์กิวเมนต์ในฟังก์ชันนี้ | ไม่มีการยอมรับอาร์กิวเมนต์ใดๆ ในฟังก์ชันนี้ |
เมื่อถูกเรียกว่า | เมื่อสร้างวัตถุขึ้นในขณะนั้นเท่านั้น ฟังก์ชันนี้จะถูกเรียกใช้ | เมื่อโปรแกรมหรือบล็อกถูกยกเลิก เฉพาะในขณะนั้น ฟังก์ชันนี้จะถูกเรียกขึ้น |
ตัวเลข | สามารถใช้ได้เป็นตัวเลขในชั้นเรียนเดียว | สามารถใช้ได้ในหมายเลขเดียวในชั้นเรียนเท่านั้น |
โอเวอร์โหลด | สามารถโอเวอร์โหลดได้ | การโอเวอร์โหลดไม่ได้เกิดขึ้น |
ตัวสร้างคืออะไร?
มีฟังก์ชันมากมายในปัจจุบัน และนอกเหนือจากนั้นคือหน้าที่ของ Constructor ซึ่งช่วยในการจัดสรรหน่วยความจำของอ็อบเจ็กต์เพื่อช่วยให้ได้รับการกำหนดค่าเริ่มต้น มันง่ายมากที่จะระบุว่าตัวใดเป็นคอนสตรัคเตอร์เนื่องจากถูกกำหนดอย่างดีสำหรับชื่อของพวกเขาด้วยคลาสเดียวกัน การก่อสร้างทุกครั้งจะมีชื่ออยู่ในหมวดที่เป็นสาธารณะ
ไม่มีประเภทของผลตอบแทนในตัวสร้าง ซึ่งหมายความว่าจะไม่ถือเป็นโมฆะ ในคลาส โดยปกติจะมีคอนสตรัคเตอร์ได้มากกว่าหนึ่งตัว ปัจจัยนี้เรียกว่าคอนสตรัคเตอร์โดยนัย ตัวสร้างเหล่านี้เรียกอีกอย่างว่าอาร์กิวเมนต์ที่มีค่าเริ่มต้น นอกจากนี้ยังช่วยในการเริ่มต้นวัตถุสำหรับบุคคลแบบไดนามิก คอนสตรัคเตอร์ไม่มีคุณสมบัติที่จะสืบทอดหรือเสมือน
มีคอนสตรัคเตอร์ทั้งหมดสามประเภทที่เป็นคอนสตรัคเตอร์เริ่มต้น ซึ่งช่วยในการสร้างออบเจ็กต์โดยไม่ต้องมีข้อโต้แย้งใด ๆ ที่ไม่มีพารามิเตอร์ คอนสตรัคเตอร์แบบกำหนดพารามิเตอร์ซึ่งเริ่มต้นวัตถุด้วยอาร์กิวเมนต์บางอย่างซึ่งประกอบด้วยค่าและสมาชิกที่แตกต่างกันและตัวสร้างการคัดลอกซึ่ง แตกต่างอย่างสิ้นเชิงจากตัวสร้างอื่น ๆ เนื่องจากพวกเขายอมรับที่อยู่ของวัตถุ
Destructor คืออะไร?
มีฟังก์ชันบางอย่างในคลาสสำหรับทำสิ่งต่าง ๆ กับอ็อบเจ็กต์ และหนึ่งในนั้นคือฟังก์ชัน destructor ในคลาส ซึ่งช่วยคลาดเคลื่อนอ็อบเจกต์ที่ได้รับการจัดสรรก่อนหน้านี้ผ่านคอนสตรัคเตอร์ มันมักจะถูกตั้งชื่อโดยบุคคลที่มีชื่อเดียวกัน
Destructor นำหน้าด้วยชื่อเสมอ (~) กล่าวโดยย่อ ฟังก์ชัน destructor ดำเนินการในรูปแบบย้อนกลับของฟังก์ชัน constructor โดยบุคคลเมื่อต้องแก้ไขวัตถุในมุมมองภายนอก ต่างจากฟังก์ชันคอนสตรัคเตอร์ ทุกคลาสจะมีตัวทำลายเพียงตัวเดียวเสมอ ด้วยเหตุนี้พวกเขาจึงไม่ยอมรับการโต้แย้งใดๆ
ทันทีที่การควบคุมหรือการดำเนินการออกจากบล็อก อ็อบเจ็กต์ในเครื่องจะถูกทำลาย และในทำนองเดียวกัน ออบเจ็กต์ส่วนกลางจะถูกทำลายก็ต่อเมื่อยุติอ็อบเจ็กต์ทั้งหมดเท่านั้น โดยทั่วไปเรียกว่าคอมไพเลอร์
ความแตกต่างที่สำคัญระหว่างตัวสร้างและตัวทำลาย
บทสรุป
ไม่รวมคุณสมบัติเดียวกันทั้งหมดที่คอนสตรัคเตอร์และ destructor มีเกี่ยวกับจำนวนฟังก์ชันและจำนวนคลาสเดียวกันที่มีชื่อเหมือนกัน จะมีความแตกต่างกัน ความแตกต่างอยู่ในคุณลักษณะและลักษณะเฉพาะและในรูปแบบที่ใช้และในบริบทใดที่คอนสตรัคเตอร์และตัวทำลายล้าง
ตัวสร้างคือตัวช่วยในการจัดสรรวัตถุในช่วงเวลาหนึ่ง ๆ และในทางกลับกันตัวทำลายล้างซึ่งช่วยในการเคลื่อนย้ายวัตถุในช่วงเวลาหนึ่ง เราควรทราบความแตกต่างระหว่างคำสองคำนี้คือตัวสร้างและตัวทำลาย