Computer >> Máy Tính >  >> Lập trình >> C ++

Sự khác biệt giữa hàm hủy và hàm miễn phí trong C ++ là gì?

Ở đây chúng ta sẽ thấy sự khác biệt giữa hàm hủy và hàm free () trong C ++. Hàm hủy được sử dụng để thực hiện một số hành động, ngay trước khi đối tượng bị hủy. Hành động này có thể không giải phóng bộ nhớ, nhưng có thể thực hiện một số hành động đơn giản như hiển thị một thông báo trên màn hình.

Hàm free () được sử dụng trong C, trong C ++, chúng ta có thể làm điều tương tự bằng cách sử dụng từ khóa delete. Khi đối tượng bị xóa bằng cách sử dụng free () hoặc delete, hàm hủy sẽ được gọi. Hàm hủy không nhận đối số và không trả về. Hàm này được gọi khi sử dụng miễn phí hoặc xóa hoặc đối tượng vượt ra khỏi phạm vi.

Ví dụ

#include<iostream>
#include<cstdlib>
using namespace std;
class MyClass {
   public:
      ~MyClass() {
         cout << "Destructor of MyClass" << endl;
      }
};
int main() {
   MyClass *obj;
   obj = new MyClass();
   delete obj;
}

Đầu ra

Destructor of MyClass

Đôi khi, hàm free () có thể không gọi hàm hủy, nhưng xóa nội dung khỏi bộ nhớ. Vì vậy, ở đây chúng tôi đã sử dụng từ khóa xóa thay vì miễn phí ().