Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tại sao lập trình viên C++ nên hạn chế dùng 'new'?


new dùng cho cấp phát bộ nhớ động. Bộ nhớ này nằm trên heap. Có nhiều chi phí liên quan đến loại cấp phát này cùng với việc lập trình viên phải thủ công dọn dẹp và quản lý bộ nhớ. Chỉ nên dùng cấp phát động khi:

  • Bạn không biết cần bao nhiêu bộ nhớ tại thời điểm biên dịch.
  • Bạn muốn bộ nhớ tồn tại sau khi thoát khối hiện tại.

Ngoài ra, rất ít trường hợp bắt buộc dùng cấp phát động. Trong C++ có khái niệm hàm hủy (destructor). Hàm này được gọi khi vòng đời đối tượng/nguồn lực kết thúc. Dùng để giải phóng bộ nhớ. Khi bạn tạo đối tượng chứa các đối tượng con, và đối tượng chính ra khỏi phạm vi, nó tự giải phóng bộ nhớ của đối tượng con.

Các biến này gọi là biến tự động (automatic variables) và loại bộ nhớ này là automatic storage. Nên dùng vì: gõ nhanh hơn, chạy nhanh hơn, ít rò rỉ bộ nhớ/nguồn lực hơn.