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' Show 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ệtBiểu đồ so sánhCơ sở để so sánhConstructorDestructorPurposeNó 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 ConstructorMộ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 ConstructorVề 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
Triển khai hàm tạoclass 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ủyDestructor 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 Destructorclass Const { int a, b; public: Const(int c, int d) //constructor with parameter. { a=c; c=d; cout<<"value of a and b are"< |