Lập Trình Máy Tính Hàm Hủy

Trong lập trình hướng đối tượng, hàm hủy (tiếng Anh: destructor, dtor) là một phương thức được gọi tự động để hủy bỏ một đối tượng.

Điều này xảy ra khi thời gian sống của đối tượng được gắn với tầm vực và sự thực thi rời khỏi tầm vực đó, hay khi nó được nhúng vào trong đối tượng khác mà thời gian sống của đối tượng đó kết thúc, hoặc khi nó được cấp phát động và bị giải phóng một cách tường minh. Mục đích chính của nó là để giải phóng tài nguyên (cấp phát bộ nhớ, các tập tin hay socket được mở, kết nối cơ sở dữ liệu, khóa tài nguyên (resource lock)...) bị giữ bởi đối tượng trong suốt thời gian sống và/hoặc các thực thể bị xoá khỏi thanh ghi nhưng cẫn còn giữ tham chiếu tới nó. Việc sử dụng hàm hủy là cần thiết cho quá trình RAII.

Trong ngôn ngữ hỗ trợ cơ chế gom rác tự động, rất khó để xác định một cách chắc chắn việc gọi hàm hủy, và do vậy các ngôn ngữ này được xem là không phù hợp cho RAII. Trong các ngôn ngữ đó, hủy liên kết từ tài nguyên có sẵn phải được gọi tường minh bằng một hàm thích hợp (thường gọi là Dispose()). Phương thức này cũng được khuyên dùng để giải phóng tài nguyên, thay vì dùng finalizer.

Cú pháp hàm hủy Lập Trình Máy Tính Hàm Hủy

  • Trong C++, hàm hủy có cùng tên với lớp mà chúng được liên kết, nhưng với tiền tố dấu ngã (~).
  • Trong D, hàm hủy được khai báo với tên ~this() (trong khi hàm tạo được khai báo với this()).
  • Trong Object Pascal, hàm hủy dùng từ khóa destructor và có thể dùng tên do người dùng định nghĩa (user-defined name), nhưng thường dùng tên Destroy.
  • Trong Objective-C, phương thức hàm hủy được đặt tên dealloc.
  • Trong Perl, phương thức hàm hủy được đặt tên DESTROY; trong phần mở rộng hệ thống đối tượng Moose, nó có tên DEMOLISH.
  • Trong PHP 5, phương thức hàm hủy được đặt tên __destruct. Không có hàm hủy ở các phiên bản PHP trước đó.
  • Trong Python, phương thức hàm hủy được đặt tên __del__.
  • Trong Swift, phương thức hàm hủy được đặt tên deinit.

Trong C++ Lập Trình Máy Tính Hàm Hủy

Hàm hủy có cùng tên với lớp, nhưng với một dấu ngã (~) trước nó. Nếu đối tượng được tạo ra như một biến tự động, hàm hủy của nó được tự động gọi khi nó ra khỏi tầm vực.

Ví dụ

#include  #include   class foo_t { friend std::ostream & operator << (std::ostream & os, foo_t const & foo) { os << foo.data; return os; }  private: char * data; foo_t(foo_t const & other); // disable copy construction foo_t& operator = (foo_t const & other);  // disable assignment  public: foo_t(void): data(new char[ 14 ]) { std::strcpy(data, "Hello, World!"); }  ~foo_t(void) { delete [] data; } };   int main() { foo_t foo; std::cout << foo << '\n'; } 

Trong C với phần mở rộng GCC Lập Trình Máy Tính Hàm Hủy

Xojo Lập Trình Máy Tính Hàm Hủy

Hàm hủy trong Xojo Lập Trình Máy Tính Hàm Hủy (REALbasic) có thể ở một trong hai dạng. Mỗi dạng dùng một khai báo phương thức thông thường với một tên đặc biệt (không có tham số và giá trị trả về).

Xem thêm

Tham khảo

Tags:

Cú pháp hàm hủy Lập Trình Máy Tính Hàm HủyTrong C++ Lập Trình Máy Tính Hàm HủyTrong C với phần mở rộng GCC Lập Trình Máy Tính Hàm HủyXojo Lập Trình Máy Tính Hàm HủyLập Trình Máy Tính Hàm HủyLập trình hướng đối tượngPhương thức (lập trình máy tính)Quản lý bộ nhớĐối tượng (khoa học máy tính)

🔥 Trending searches on Wiki Tiếng Việt:

Hùng VươngAstro (nhóm nhạc)Tiếng Trung QuốcTạ Đình ĐềTrang bị Quân đội nhân dân Việt NamTrường Giang (nghệ sĩ)Danh sách đơn vị hành chính Việt Nam theo GRDPLoạn luânTô LâmSong Hye-kyoĐấu La Đại LụcGiải bóng đá Ngoại hạng AnhHải PhòngHồ Ngọc HàĐồng NaiQuần đảo Hoàng SaAhn Hyo-seopCầu Hiền LươngĐạt-lai Lạt-maHình thoiCampuchiaPKhởi nghĩa Yên ThếMao Trạch ĐôngFukada EimiĐường lên đỉnh Olympia năm thứ 23Dark webĐảng Cộng sản Việt NamNhà tù Hỏa LòPiLịch sử Việt NamNguyễn Thị ĐịnhVõ Văn HoanLịch sử Chăm PaMark ZuckerbergDanh sách nhân vật trong NarutoĐại hội Thể thao Đông Nam Á 2023Giải thưởng nghệ thuật BaeksangCác ngày nghỉ lễ ở Hàn QuốcHiệp định Genève, 1954A.C. MonzaÔ nhiễm môi trườngĐạo Cao ĐàiMáy tínhLương CườngVĩnh PhúcDân số thế giớiPol PotPhanxicô Xaviê Trương Bửu DiệpTrần PhúQuảng ĐôngQuan VũNguyễn Ngọc LoanCác vị trí trong bóng đáTrận Ấp BắcNguyễn TrãiTuần lễ Vàng (Nhật Bản)Cách mạng Công nghiệp lần thứ tưDragon Ball – 7 viên ngọc rồngDanh sách chương trình phát sóng của Đài Truyền hình Việt NamTây du ký (phim truyền hình 1986)Nhà Tiền LêNguyên Thủy Thiên TônDanh sách tập phim Thám tử lừng danh Conan (2016–nay)Quảng TrịNguyễn Hữu ThọStephen HawkingLiên Xô tan rãLưu Cơ (nhà Đinh)Việt CộngTrường ChinhChủ nghĩa cộng sảnChiến tranh biên giới Việt–Trung 1979Bát chính đạoQuảng NamHoàng ĐanGoogle DịchTrận Xuân Lộc🡆 More