ฉันจะจำกัดการจัดสรรแบบไดนามิกของวัตถุใน C ++ ได้อย่างไร
ฉันจะจำกัดการจัดสรรแบบไดนามิกของวัตถุใน C ++ ได้อย่างไร

วีดีโอ: ฉันจะจำกัดการจัดสรรแบบไดนามิกของวัตถุใน C ++ ได้อย่างไร

วีดีโอ: ฉันจะจำกัดการจัดสรรแบบไดนามิกของวัตถุใน C ++ ได้อย่างไร
วีดีโอ: E = mc^2 สมการฟิสิกส์เปลี่ยนโลก 2024, อาจ
Anonim

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

เมื่อพิจารณาถึงสิ่งนี้ ฉันจะจำกัดการจัดสรรแบบไดนามิกของวัตถุใน C ++ ได้อย่างไร

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

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

ผู้คนยังถามคุณว่าคุณจะสร้างคลาส C ++ ที่มีวัตถุที่สามารถจัดสรรแบบไดนามิกได้อย่างไร?

  1. ไม่สามารถทำได้ สิ่งเดียวที่คุณทำได้คือทำให้คอนสตรัคเตอร์เป็นแบบส่วนตัว และมีโรงงานแบบสแตติกที่สร้างอินสแตนซ์ใหม่ของคลาส –
  2. การสร้างคลาสดังกล่าวเป็นปัญหาอย่างแน่นอน
  3. นั่นเป็นข้อกำหนดที่แปลกมาก

เหตุใดเราจึงต้องเริ่มต้นวัตถุแบบไดนามิก

NS การเริ่มต้นแบบไดนามิกของวัตถุ แปลว่า เริ่มต้น สมาชิกของคลาสข้อมูลในขณะที่สร้าง วัตถุ . เมื่อไหร่ พวกเราต้องการ เพื่อให้ค่าเริ่มต้นหรือค่าเริ่มต้นแก่สมาชิกข้อมูลในขณะที่สร้าง วัตถุ - พวกเราต้องการ ใช้ การเริ่มต้นแบบไดนามิกของวัตถุ.