สารบัญ:

ตัวดำเนินการใดที่ใช้ในการจัดสรรวัตถุแบบไดนามิกของคลาสใน C ++
ตัวดำเนินการใดที่ใช้ในการจัดสรรวัตถุแบบไดนามิกของคลาสใน C ++

วีดีโอ: ตัวดำเนินการใดที่ใช้ในการจัดสรรวัตถุแบบไดนามิกของคลาสใน C ++

วีดีโอ: ตัวดำเนินการใดที่ใช้ในการจัดสรรวัตถุแบบไดนามิกของคลาสใน C ++
วีดีโอ: เขียนโปรแกรมเชิงวัตถุด้วย JavaScript (OOP) | FULL COURSE 2024, เมษายน
Anonim

รองรับ C++ พลวัต การจัดสรรและจัดสรรของ วัตถุ ใช้ใหม่และลบ ตัวดำเนินการ . เหล่านี้ ผู้ประกอบการจัดสรร หน่วยความจำสำหรับ วัตถุ จากสระที่เรียกว่าร้านฟรี ใหม่ โอเปอเรเตอร์ เรียกฟังก์ชันพิเศษ โอเปอเรเตอร์ ใหม่และการลบ โอเปอเรเตอร์ เรียกฟังก์ชันพิเศษ โอเปอเรเตอร์ ลบ.

ด้วยวิธีนี้ คุณจะจัดสรรอาร์เรย์ของวัตถุใน C++ แบบไดนามิกได้อย่างไร

หมายเหตุ C ++: การจัดสรรแบบไดนามิกของอาร์เรย์

  1. ปัญหาเกี่ยวกับอาร์เรย์ขนาดคงที่ ประกาศอาร์เรย์ที่มีขนาดคงที่เช่น
  2. ประกาศอาร์เรย์เป็นตัวชี้ จัดสรรใหม่ ในการสร้างตัวแปรที่จะชี้ไปที่อาร์เรย์ที่จัดสรรแบบไดนามิก ให้ประกาศเป็นตัวชี้ไปยังประเภทองค์ประกอบ
  3. จัดสรรอาร์เรย์ด้วยรหัส>ใหม่
  4. ปลดปล่อยหน่วยความจำด้วยการลบ
  5. ตัวอย่าง.

นอกจากนี้ คุณจะจัดสรรและจัดสรรคืนหน่วยความจำแบบไดนามิกใน C ++ อย่างไร C ใช้ฟังก์ชัน malloc() และ calloc() ถึง จัดสรรหน่วยความจำแบบไดนามิก ณ รันไทม์และใช้ฟังก์ชัน free() เป็น free แบบไดนามิก จัดสรร หน่วยความจำ . C++ รองรับฟังก์ชั่นเหล่านี้และยังมีโอเปอเรเตอร์สองตัวใหม่และลบที่ทำหน้าที่ของ จัดสรร และปลดปล่อย หน่วยความจำ ในทางที่ดีขึ้นและง่ายขึ้น

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

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

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

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