Không phải là thiết kế ngôn ngữ lập trình tốt phải duy trì "bảng foo" để xử lý tình huống này?
Có phải không? tại sao? Một ngôn ngữ lập trình tốt là một ngôn ngữ cho phép bạn giải quyết vấn đề, không còn nữa, không kém. Một bộ thu gom rác chắc chắn làm giảm rào cản nhập cảnh, nhưng nó cũng mất kiểm soát khỏi lập trình viên, mà có thể là một vấn đề trong một số trường hợp. Đúng, trên một máy tính quad-core 2.5GHz hiện đại, và với những người thu gom rác tiên tiến và hiệu quả ngày nay, chúng ta có thể sống với điều đó. Nhưng C++ đã phải làm việc với phần cứng hạn chế hơn nhiều, từ máy tính để bàn với 16MB bộ nhớ RAM xuống đến các nền tảng nhúng với 16KB và mọi thứ ở giữa. Nó phải có thể sử dụng được trong mã thời gian thực, nơi bạn có thể không chỉ cần tạm dừng chương trình trong 0,5 giây để chạy bộ sưu tập rác.
C++ không chỉ được thiết kế làm ngôn ngữ được sử dụng trên máy tính để bàn. Nó có nghĩa là có thể sử dụng được ở mọi nơi, trên các hệ thống có bộ nhớ hạn chế, trong các tình huống thời gian thực cứng, trên các siêu máy tính lớn và ở mọi nơi khác.
Nguyên tắc hướng dẫn của C++ là "bạn không trả tiền cho những gì bạn không sử dụng". Nếu bạn không muốn một bộ thu gom rác, bạn không cần phải trả giá (dốc) của một.
Có các kỹ thuật rất mạnh để quản lý bộ nhớ trong C++ và tránh rò rỉ bộ nhớ, ngay cả khi không có bộ thu gom rác. Nếu một người thu gom rác là chỉ cách để tránh rò rỉ bộ nhớ, thì sẽ có một đối số mạnh mẽ có lợi cho việc thêm một ngôn ngữ vào ngôn ngữ đó. Nhưng không phải vậy. Bạn chỉ cần học cách tự quản lý bộ nhớ trong C++.
Bạn có thể quan tâm đến http://stackoverflow.com/questions/3289726/in-c-any-general-guidelines-for-handling-memory-allocation-deletion/3289929 – sellibitze