
2025 ผู้เขียน: Lynn Donovan | [email protected]. แก้ไขล่าสุด: 2025-01-22 17:42
รองรับ C++ พลวัต การจัดสรรและจัดสรรของ วัตถุ ใช้ใหม่และลบ ตัวดำเนินการ . เหล่านี้ ผู้ประกอบการจัดสรร หน่วยความจำสำหรับ วัตถุ จากสระที่เรียกว่าร้านฟรี ใหม่ โอเปอเรเตอร์ เรียกฟังก์ชันพิเศษ โอเปอเรเตอร์ ใหม่และการลบ โอเปอเรเตอร์ เรียกฟังก์ชันพิเศษ โอเปอเรเตอร์ ลบ.
ด้วยวิธีนี้ คุณจะจัดสรรอาร์เรย์ของวัตถุใน C++ แบบไดนามิกได้อย่างไร
หมายเหตุ C ++: การจัดสรรแบบไดนามิกของอาร์เรย์
- ปัญหาเกี่ยวกับอาร์เรย์ขนาดคงที่ ประกาศอาร์เรย์ที่มีขนาดคงที่เช่น
- ประกาศอาร์เรย์เป็นตัวชี้ จัดสรรใหม่ ในการสร้างตัวแปรที่จะชี้ไปที่อาร์เรย์ที่จัดสรรแบบไดนามิก ให้ประกาศเป็นตัวชี้ไปยังประเภทองค์ประกอบ
- จัดสรรอาร์เรย์ด้วยรหัส>ใหม่
- ปลดปล่อยหน่วยความจำด้วยการลบ
- ตัวอย่าง.
นอกจากนี้ คุณจะจัดสรรและจัดสรรคืนหน่วยความจำแบบไดนามิกใน C ++ อย่างไร C ใช้ฟังก์ชัน malloc() และ calloc() ถึง จัดสรรหน่วยความจำแบบไดนามิก ณ รันไทม์และใช้ฟังก์ชัน free() เป็น free แบบไดนามิก จัดสรร หน่วยความจำ . C++ รองรับฟังก์ชั่นเหล่านี้และยังมีโอเปอเรเตอร์สองตัวใหม่และลบที่ทำหน้าที่ของ จัดสรร และปลดปล่อย หน่วยความจำ ในทางที่ดีขึ้นและง่ายขึ้น
ในทำนองเดียวกันอาจมีคนถามว่าคุณจะสร้างคลาส C ++ ที่มีวัตถุที่สามารถจัดสรรแบบไดนามิกได้อย่างไร
- ไม่สามารถทำได้ สิ่งเดียวที่คุณทำได้คือทำให้คอนสตรัคเตอร์เป็นแบบส่วนตัว และมีโรงงานแบบสแตติกที่สร้างอินสแตนซ์ใหม่ของคลาส –
- การสร้างคลาสดังกล่าวเป็นปัญหาอย่างแน่นอน
- นั่นเป็นข้อกำหนดที่แปลกมาก
ฉันจะจำกัดการจัดสรรแบบไดนามิกของวัตถุใน C ++ ได้อย่างไร
กองตาม วัตถุ ได้รับการจัดการโดยปริยายโดย C++ คอมไพเลอร์ พวกเขาจะถูกทำลายเมื่อพวกเขาออกไปนอกขอบเขตและ วัตถุที่จัดสรรแบบไดนามิก ต้องได้รับการปล่อยด้วยตนเองโดยใช้ตัวดำเนินการลบมิฉะนั้น หน่วยความจำ การรั่วไหลเกิดขึ้น C++ ไม่รองรับวิธีการรวบรวมขยะอัตโนมัติที่ใช้โดยภาษาต่างๆ เช่น Java & C#