Destructor (Hàm hủy)

Trong lập trình hướng đối tượng, destructor là một phương pháp được gọi tự động khi đối tượng bị phá hủy. Nó có thể xảy ra khi vòng đời của nó bị ràng buộc bởi phạm vi và sự thực thi ngoài phạm vi, khi nó được nhúng vào một đối tượng khác lúc kết thúc vòng đời, hoặc khi nó được chỉ định hay được phát hành một cách rõ ràng. Mục đích chính là để giải phóng các nguồn lực (cấp phát bộ nhớ, mở các tập tin hoặc ổ cắm, kết nối cơ sở dữ liệu, khóa tài nguyên, vv) thu được bởi các đối tượng có cùng vòng đời hoặc xoá các đăng ký từ những thực thể khác có thể tham chiếu đến nó. Việc sử dụng các hàm hủy là điều cần thiết để thừa nhận khái niệm về RAII.

By English

In object-oriented programming, a destructor (sometimes shortened to dtor) is a method which is automatically invoked when the object is destroyed. It can happen when its lifetime is bound to scope and the execution leaves the scope, when it is embedded into another object whose lifetime ends, or when it was allocated dynamically and is released explicitly. Its main purpose is to free the resources (memory allocations, open files or sockets, database connections, resource locks, etc.) which were acquired by the object along its life cycle and/or deregister from other entities which may keep references to it. The use of destructors is a necessity to the concept of Resource Acquisition Is Initialization (RAII).

In a language with an automatic garbage collection mechanism, it would be difficult to deterministically ensure the invocation of a destructor, and hence these languages are generally considered unsuitable for RAII. In such languages, unlinking an object from existing resources must be done by an explicit call of an appropriate function (usually called Dispose()). This method is also recommended for freeing resources rather than using finalizers for that.



Like Doanh nhân số