Ok, vậy đây là câu hỏi ... là từ khóa mới lỗi thời?Các đối tượng mới có lỗi thời không?
Hãy xem xét trong C# (và java, tôi tin) có các quy tắc nghiêm ngặt cho các loại. Các lớp là các kiểu tham chiếu và chỉ có thể được tạo trên heap. Các loại POD được tạo trên ngăn xếp; nếu bạn muốn phân bổ chúng trên heap, bạn phải đóng chúng trong một kiểu đối tượng. Trong C#, structs
là ngoại lệ, chúng có thể được tạo trên ngăn xếp hoặc đống.
Với những quy tắc này, chúng tôi có phải sử dụng từ khóa mới không? Nó sẽ không có ý nghĩa đối với ngôn ngữ để sử dụng chiến lược phân bổ phù hợp dựa trên loại?
Ví dụ, chúng tôi hiện đang phải viết:
SomeClassType x = new SomeClassType();
thay vì
SomeClassType x = SomeClassType();
hoặc thậm chí chỉ
SomeClassType x;
Trình biên dịch sẽ căn cứ vào đó loại được tạo ra là một kiểu tham chiếu, tiếp tục và cấp phát bộ nhớ cho x trên heap.
Điều này áp dụng cho các ngôn ngữ khác như ruby, php và cộng sự. C/C++ cho phép lập trình viên kiểm soát nhiều hơn đối tượng nơi được tạo ra, vì vậy nó có lý do chính đáng để yêu cầu từ khóa mới.
Là new
chỉ là một sự nắm giữ từ di sản dựa trên thập niên 60 và C của chúng tôi?
Và đây không phải là cộng đồng wiki vì ...? –
Tôi không biết. Bạn có nghĩ rằng nó nên được? –
Đây là một câu hỏi hoàn toàn hợp lệ. Và một điều tốt nữa. Không cần CW. – bsneeze