Hàm tạo và hàm hủy trong PHP javatpoint

Đôi khi cần phải khởi tạo một số phần của đối tượng trước khi có thể sử dụng nó. Ví dụ: chúng ta đang thao tác trên ngăn xếp, trước khi thực hiện bất kỳ hành động nào, đỉnh của ngăn xếp luôn phải được đặt bằng 0. Tính năng khởi tạo tự động này được thực hiện thông qua 'Constructor'

Giống như, nếu một đối tượng cần thực thi một số mã trước khi nó bị hủy. Ví dụ: nếu một đối tượng cần đóng một tệp mà nó đã mở trước khi hủy. Nó có thể được thực hiện với sự trợ giúp của 'Destructor'. Bây giờ, hãy xem tổng quan một số khác biệt cơ bản giữa hàm tạo và hàm hủy với sự trợ giúp của biểu đồ so sánh

Nội dung. Trình xây dựng Vs Kẻ hủy diệt

Biểu đồ so sánh

Cơ sở để so sánhConstructorDestructorPurpose

Nó cấp phát bộ nhớ cho một đối tượng. Nó giải phóng bộ nhớ của một đối tượng.
Declarationclass_name[ đối số nếu có]{ };~ class_name[ không có đối số ]{ };ArgumentsConstructor chấp nhận đối sốDestructor không chấp nhận bất kỳ đối số nào. Calling Constructor được gọi tự động, trong khi đối tượng được tạo. Trình hủy được gọi tự động, khi khối được thoát hoặc chương trình kết thúc. WorkingConstructor cho phép một đối tượng khởi tạo một số giá trị của nó trước đó, nó được sử dụng. Trình hủy cho phép một đối tượng thực thi một số mã tại thời điểm bị hủy. Thứ tự thực hiện

Constructor được gọi theo thứ tự liên tiếp.
Hàm hủy được gọi theo thứ tự ngược lại với hàm tạo. Bằng sốCó thể có nhiều hàm tạo trong một lớp. Luôn có một hàm hủy duy nhất trong lớp. Copy ConstructorCopy constructor cho phép một constructor khai báo và khởi tạo một đối tượng từ một đối tượng khác. Không có khái niệm như vậy. Over loadingConstructors có thể bị quá tải. Destructor không thể bị quá tải.

Định nghĩa của Constructor

Một hàm tạo về cơ bản là một hàm thành viên của lớp, khởi tạo đối tượng và cấp phát bộ nhớ cho nó. Constructor có thể được xác định dễ dàng vì chúng được khai báo và định nghĩa với cùng tên với tên của lớp. Một hàm tạo không có bất kỳ kiểu trả về nào; . Một Constructor luôn được định nghĩa trong phần public của một lớp

Có thể có nhiều hàm tạo trong một lớp; . Nếu có nhiều hàm tạo trong một lớp;

Constructor cũng có thể được định nghĩa với các đối số mặc định. Trong khi đó, chúng cũng khởi tạo đối tượng một cách “động”. Các hàm tạo không thể được kế thừa, cũng không thể là ảo, nhưng chúng có thể bị quá tải. Họ không thể được giới thiệu đến địa chỉ của họ

Các loại Constructor

Về cơ bản có ba loại hàm tạo - Hàm tạo mặc định, được tham số hóa và sao chép

  • Nhà xây dựng mặc định. Nó là một hàm tạo mà không có đối số nào được đưa ra cho hàm tạo. Hàm tạo mặc định không có tham số, nhưng các giá trị cho hàm tạo mặc định có thể được truyền theo mặc định [động]
  • Trình xây dựng được tham số hóa. Loại hàm tạo này lấy các đối số;
  • Sao chép công cụ xây dựng. Hàm tạo bản sao khác với các loại hàm tạo khác vì nó chấp nhận địa chỉ của đối tượng khác làm đối số

Triển khai  hàm tạo

class Const
{
int a, b;
public:
Const[] // constructor with no parameter
{
a=0;
b=0;
}
Const[int c, int d]{ //constructor with parameter
a=c;
c=d;
}
};
int main[]{
Const C1; C2[10,20]; //this statement invokes constructor
}

Khi C1 được tạo, một hàm tạo không có tham số nào được thực thi, vì C1 không truyền bất kỳ tham số nào. Trong khi đó, khi C2 được tạo, một hàm tạo có tham số sẽ được thực thi, vì nó đang truyền hai số nguyên cho hàm tạo

Định nghĩa của hàm hủy

Destructor cũng là một hàm thành viên của một lớp, nó giải phóng bộ nhớ được phân bổ cho một đối tượng. Nó được định nghĩa với cùng tên với tên của một lớp, trước ký hiệu dấu ngã [~]. Hàm hủy luôn được gọi theo thứ tự ngược lại với hàm tạo

Luôn có một hàm hủy duy nhất trong một lớp vì nó không chấp nhận bất kỳ đối số nào. Các đối tượng cục bộ bị hủy ngay khi quyền kiểm soát thực thi rời khỏi khối;

Hàm hủy được gọi ngầm bởi trình biên dịch. Nếu các lớp được kế thừa và một lớp được dẫn xuất từ ​​một lớp cha và cả lớp con và lớp cha đều có hàm hủy;

Triển khai Destructor

class Const
{
int a, b;
public:
Const[int c, int d] //constructor with parameter.
{
a=c;
c=d;
cout

Chủ Đề