Đầu tiên, tôi nhận thức rõ tại sao không có cấu trúc 'cuối cùng' trong C ++? nhưng một cuộc thảo luận bình luận kéo dài về một câu hỏi khác dường như đảm bảo một câu hỏi riêng biệt.
Ngoài vấn đề là finally
trong C # và Java về cơ bản chỉ có thể tồn tại một lần (== 1) cho mỗi phạm vi và một phạm vi có thể có nhiều hàm hủy (C = = n) C ++, tôi nghĩ rằng về cơ bản chúng giống nhau. (Với một số khác biệt về kỹ thuật.)
Tuy nhiên, một người dùng khác lập luận :
... Tôi đã cố gắng nói rằng một dtor vốn dĩ là một công cụ cho (Phát hành sơ đồ) và cuối cùng vốn là một công cụ cho (Cam kết ngữ nghĩa). Nếu bạn không thấy lý do tại sao: hãy xem xét lý do tại sao việc ném các ngoại lệ lên nhau trong các khối cuối cùng là hợp pháp và tại sao điều tương tự lại không dành cho kẻ hủy diệt. (Theo một nghĩa nào đó, đó là dữ liệu so với điều khiển. Công cụ phá hủy là để phát hành dữ liệu, cuối cùng là để phát hành quyền kiểm soát. Chúng khác nhau; thật không may khi C ++ liên kết chúng lại với nhau.)
Ai đó có thể làm rõ điều này?