Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ทำไมโปรแกรมเมอร์ C++ ควรลดการใช้ 'new' ให้น้อยที่สุด


new ใช้สำหรับ dynamic memory allocation บน heap มีค่าใช้จ่ายหลายอย่าง และโปรแกรมเมอร์ต้องจัดการหน่วยความจำด้วยตนเอง (manual memory management)

ควรใช้ new เฉพาะเมื่อ:

  • ไม่รู้ขนาดหน่วยความจำที่ต้องการตอน compile time
  • ต้องการให้หน่วยความจำคงอยู่หลังออกจาก block/scope ปัจจุบัน

นอกจากนี้ มีกรณีน้อยมากที่ต้องใช้ dynamic allocation เพราะ C++ มี destructor เรียกอัตโนมัติเมื่อ object จบอายุ (scope) ใช้ free memory ได้ ทำให้ลูกๆ (member objects) ถูกปลดปล่อยพร้อมกัน

ตัวแปรแบบนี้เรียกว่า automatic variables ใช้ automatic storage ควรใช้เพราะ:

  • เขียนเร็วกว่า
  • รันเร็วกว่า (stack allocation)
  • น้อยโอกาส memory/resource leaks