Trong lập trình hướng đối tượng, hàm hủy (tiếng Anh: destructor, viết tắt: 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
- 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++
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
Xojo
Hàm hủy trong Xojo (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ề).
👁️
13 | 🔗 | 💖 | ✨ | 🌍 | ⌚
Trong lập trình hướng đối tượng, **hàm hủy** (tiếng Anh: _destructor_, viết tắt: _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
**Pascal** là một ngôn ngữ lập trình cho máy tính thuộc dạng mệnh lệnh và thủ tục, được Niklaus Wirth phát triển vào năm 1970. Pascal là ngôn ngữ lập trình đặc biệt thích hợp
Đây là danh sách các thuật ngữ tìm thấy trong lập trình hướng đối tượng. Một số có liên quan đến lập trình hướng đối tượng và một số thì không. Lưu ý rằng, các
**Lập trình hướng đối tượng** () là một mẫu hình lập trình dựa trên khái niệm "đối tượng", mà trong đó, đối tượng chứa đựng các dữ liệu trong các trường, thường được gọi là
Trong lập trình hướng đối tượng (OOP), **thực thể** (tiếng Anh: _instance_) là một sự xuất hiện cụ thể của bất kì đối tượng nào, thường tồn tại trong khoảng thời gian chạy của một
**C** là một ngôn ngữ mệnh lệnh được phát triển từ đầu thập niên 1970 bởi Dennis Ritchie để dùng trong hệ điều hành UNIX. Từ đó, ngôn ngữ này đã lan rộng ra nhiều
Class trong **C++** là khái niệm được người dùng định nghĩa như một kiểu dữ liệu đơn giản hay một cấu trúc dữ liệu, được khai báo bằng từ khóa **class, **nó chứa các biến
**C#** (**C Sharp**, đọc là _"xi-sáp"_) là một ngôn ngữ lập trình hướng đối tượng đa năng, mạnh mẽ được phát triển bởi Microsoft, C# là phần khởi đầu cho kế hoạch .NET của họ.
**Ruby** là một ngôn ngữ lập trình hướng đối tượng, có khả năng phản ứng. Theo tác giả, Ruby chịu ảnh hưởng bởi Perl, Smalltalk, Eiffel, Ada và Lisp. Ruby cung cấp nhiều mẫu hình
Máy tính lượng tử là hệ thống có thể thực thi vô số phép tính phức tạp cùng một lúc mà một máy tính thông thường có thể phải mất hàng triệu năm mới xong.
**Elon Reeve Musk** (sinh 28 tháng 6 năm 1971) là một doanh nhân, nổi tiếng với vai trò mấu chốt trong hai công ty Tesla, Inc. và SpaceX, cũng như chủ sở hữu của Twitter.
**Phần mềm xử lý bảng tính** hay **Bảng tính** (tiếng Anh**: Spreadsheet**) là một phần mềm ứng dụng dùng để tổ chức, phân tích và lưu trữ dữ liệu thông qua các bảng tính (gọi
**_Space Jam: Kỷ nguyên mới_** (tên gốc tiếng Anh: **_Space Jam: A New Legacy_**) là phim điện ảnh người đóng/hoạt hình thể thao hài hước của Mỹ năm 2021 do Malcolm D. Lee đạo diễn,
right|thumb|Tàn dư đang giãn nở của [[SN 1987A, một siêu tân tinh loại II dị thường trong Đám mây Magellan Lớn. _ảnh của NASA._]] **Siêu tân tinh loại II** là kết quả của sự sụp đổ
phải|nhỏ|Một tình nguyện viên điều chỉnh bảng lịch trình tại Wikimania 2007. Hội đồng quản trị cho biết thời gian và địa điểm mà tại đó các sự kiện sẽ diễn ra, do đó giúp
**_Trolls World Tour_** là một bộ phim hài kịch hoạt hình máy tính hoạt hình năm 2020 của Mỹ được sản xuất bởi DreamWorks Animation và được phân phối bởi Universal Pictures. Bộ phim là
**_Kẻ hủy diệt: Vận mệnh đen tối_** (tên tiếng Anh: **_Terminator: Dark Fate_**) là phim điện ảnh hành động khoa học viễn tưởng của Mỹ năm 2019 do Tim Miller đạo diễn với phần kịch
**Apollo 11** (16–24 tháng 7 năm 1969) là chuyến bay vào vũ trụ của Hoa Kỳ đã lần đầu tiên đưa con người đặt chân lên bề mặt Mặt Trăng. Chỉ huy Neil Armstrong cùng
**_Kẻ hủy diệt: Thời đại Genisys_** (tựa gốc tiếng Anh: **_Terminator Genisys_**) là phim điện ảnh hành động khoa học viễn tưởng của Mỹ năm 2015 do Alan Taylor đạo diễn và Laeta Kalogridis cùng
**_Star Wars: Thần lực thức tỉnh_** (tên gốc tiếng Anh: **_Star Wars: The Force Awakens_**, hoặc **_Star Wars: Episode VII – The Force Awakens_**) là một bộ phim điện ảnh thuộc thể loại sử thi
**_Kẻ hủy diệt 4_** (tiếng Anh: **_Terminator Salvation_**, Dịch nghĩa: _Kẻ huỷ diệt: Cứu rỗi_) là bộ phim điện ảnh thứ tư của dòng phim hành động, khoa học viễn tưởng và được trình chiếu
**Trịnh Giang** (chữ Hán: 鄭杠, 14 tháng 10 năm 1711 – 30 tháng 12 năm 1762), còn có tên khác là **Trịnh Khương** (鄭橿), hay **Trịnh Cường**, thụy hiệu là **Dụ Tổ Thuận vương** (裕祖順王),
**_Kẻ hủy diệt 2: Ngày phán xét_** () là một bộ phim điện ảnh Mỹ thuộc thể loại hành độngkhoa học viễn tưởng ra mắt vào năm 1991 do James Cameron làm đạo diễn, sản
**Tình báo** là hoạt động thu thập tin tức một cách bí mật khiến người bị theo dõi không biết rằng mình đang bị theo dõi. Gián điệp (tình báo viên, nhân viên tình báo
**Trịnh Thành Công** () (2 tháng 8 năm 1624 - 23 tháng 6 năm 1662), nguyên huý là **Sâm**, tự là **Minh Nghiễm **hay** Đại Mộc**, hay còn được biết đến với tên gọi khác
**An ninh mạng (cybersecurity), an ninh máy tính (computer security), bảo mật công nghệ thông tin (IT security)** là việc bảo vệ **hệ thống mạng máy tính** khỏi các hành vi trộm cắp hoặc làm
**Phan Châu Trinh** hay **Phan Chu Trinh** (chữ Hán: 潘周楨; 1872 – 1926), hiệu là **Tây Hồ** (西湖), biệt hiệu **Hy Mã** (希瑪), tự là **Tử Cán** (子幹). Ông là nhà thơ, nhà văn, và
**Chúa Trịnh** (chữ Nôm: 主鄭, chữ Hán: 鄭王 / **Trịnh vương**; 1545 – 1787) là một vương tộc phong kiến kiểm soát quyền lực lãnh thổ Đàng Ngoài suốt thời Lê Trung hưng. Về danh
nhỏ|Một máy NCR Personas 75-Series, máy ATM đa chức năng ở Hoa Kỳ nhỏ|213x213px|[[Otto., một máy ATM Phần Lan]] nhỏ|Các máy ATM trong nhà có kích thước nhỏ hơn để thuận tiện cho việc chuyển
**Trịnh Doanh** (chữ Hán: 鄭楹, 4 tháng 12 năm 1720 – 12 tháng 5 năm 1767), thụy hiệu **Nghị Tổ Ân vương** (毅祖恩王), là vị chúa Trịnh thứ 7 thời Lê Trung hưng trong lịch
nhỏ| Một sơ đồ cho thấy cách người dùng tương tác với [[phần mềm ứng dụng trên một máy tính để bàn thông thường. Lớp phần mềm ứng dụng giao tiếp với hệ điều hành,
**Đường hầm eo biển Manche** hay **Đường hầm eo biển Anh** (, ), là một đường hầm đường sắt dài 50,45 km bên dưới biển Manche tại Eo biển Dover, nối Folkestone, Kent ở Anh ()
**Nguyễn Huy Dũng** (sinh ngày 7 tháng 11 năm 1983) là một chính khách Việt Nam, hiện đang giữ chức vụ Ủy viên chuyên trách Ban Chỉ đạo Trung ương về phát triển khoa học
**Siêu tân tinh** (chữ Hán: 超新星) hay **sao siêu mới** (; viết tắt là **SN** hay **SNe**) là một sự kiện thiên văn học biến đổi tức thời xảy ra trong giai đoạn cuối của
**An Huy** (, IPA:_ánxwéi_) là một tỉnh của Cộng hòa Nhân dân Trung Hoa. Năm 2020, An Huy là tỉnh đông thứ tám về số dân, đứng thứ 11 về kinh tế Trung Quốc với
**Trịnh Sách Khiết** (hoặc **Trịnh San Khiết**, tiếng Trung giản thể: 郑栅洁, bính âm Hán ngữ: _Zhèng Zhà Jié_, tiếng Latinh: _Zheng Zhajie_; sinh ngày 10 tháng 11 năm 1961, người Hán) là chính trị
Smas HA Plus Hyaluronic acidCông dụng củaCung cấp độ ẩmSerum dưỡng ẩm này giúp tăng cường độ ẩm cho làn da của bạn, giúp da không bị khô và cải thiện khả năng giữ nước
**Tổng cục Tình báo Quốc phòng**, gọi tắt là **Tổng cục Tình báo** hoặc** Tổng cục II**, là cơ quan tình báo chiến lược của Đảng, Nhà nước, cơ quan tình báo chuyên ngành quân
**Shuttle-_Mir**_ (**Tàu con thoi – Trạm vũ trụ _Hòa Bình_**) là chương trình không gian bao gồm 11 sứ mệnh hợp tác giữa Nga và Hoa Kỳ với các hoạt động như tàu con thoi
, còn được biết đến với nghệ danh **Cheng Xiao** hay **Seongso** (), là một nữ ca sĩ, vũ công và diễn viên người Trung Quốc. Cô là cựu thành viên nhóm nhạc thần tượng
Hoa Kỳ được biết là một quốc gia sở hữu ba loại vũ khí hủy diệt hàng loạt: vũ khí hạt nhân, vũ khí hóa học và vũ khí sinh học. Đồng thời, cũng là
thumb|_[[Sappho và Erinna trong khu vườn ở Mytilene_ bởi Simeon Solomon, 1864]] thumb|right|Biểu tượng đại diện cho người đồng tính nữ được tạo nên từ hai [[biểu tượng thiên văn của sao Kim lồng vào
**Trịnh Sảng** (, sinh ngày 22 tháng 8 năm 1991) là nữ cựu diễn viên người Trung Quốc nổi tiếng với vai diễn đầu tay Sở Vũ Tiêm trong phim truyền hình _Cùng Ngắm Mưa
**Lập kế hoạch yêu cầu vật liệu** (**MRP**) là một kế hoạch sản xuất, lập kế hoạch và kiểm soát hàng tồn kho được sử dụng để quản lý các quy trình sản xuất. Hầu
**Thanh vương** **Trịnh Tráng** (chữ Hán: 鄭梉, 6 tháng 8 năm 1577 – 28 tháng 5 năm 1657), thụy hiệu **Văn Tổ Nghị vương** (文祖誼王), là chúa Trịnh thứ 2 thời Lê Trung hưng chính
thumb|Hai mẫu thử nghiệm của máy bay [[Dassault Mirage G, chiếc trên có cánh đang cụp và chiếc dưới có cánh đang xòe.]] thumb|3 chiếc F-111 của Không quân Úc với cánh có góc xòe
**Mô-đun chỉ huy và dịch vụ Apollo** (tiếng Anh: **Apollo command and service module**, viết ngắn gọn là **Apollo CSM**) là một trong hai thành phần chính cấu tạo nên tàu vũ trụ Apollo của
**Cuộc vây hãm Dubrovnik** (, Опсада Дубровника) là một cuộc giao tranh quân sự giữa Quân đội Nhân dân Nam Tư (tiếng Serbia-Croatia: _Jugoslovenska Narodna Armija_, JNA) với lực lượng người Croat bảo vệ thành
**Tống Huy Tông** (chữ Hán: 宋徽宗, 2 tháng 11, 1082 – 4 tháng 6, 1135), là vị Hoàng đế thứ tám của triều đại Bắc Tống trong lịch sử Trung Quốc. Ông trị vì từ
**C++** (**C Plus Plus**, **CPP,** IPA: /siː pləs pləs/) là một ngôn ngữ lập trình đa năng bậc cao (high-level) được tạo ra bởi Bjarne Stroustrup như một phần mở rộng của ngôn ngữ lập