Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Xử lý ngoại lệ và hủy đối tượng trong C++

Hàm hủy (destructor) trong C++ được gọi khi đối tượng bị hủy và giải phóng bộ nhớ khỏi hệ thống. Khi một ngoại lệ được ném ra trong class, hàm hủy được gọi tự động trước khi khối catch được thực thi.

Thuật toán

Bắt đầu
  Khai báo class sample1.
    Khai báo constructor của sample1.
      In "Tạo đối tượng của sample1".
    Khai báo destructor của sample1.
      In "Hủy đối tượng của sample1".
  Khai báo class sample2.
    Khai báo constructor của sample2.
      Khai báo biến i kiểu integer.
      Khởi tạo i = 7.
      In "Tạo đối tượng của sample2".
      Ném i.
    Khai báo destructor của sample2.
      In "Hủy đối tượng của sample2".
  Try:
    Khai báo đối tượng s1 của class sample1.
    Khai báo đối tượng s2 của class sample2.
  Catch(int i)
    In "Đã bắt".
    In giá trị biến i.
Kết thúc.

Mã ví dụ

#include <iostream>
using namespace std;

class Sample1 {
public:
    Sample1() {
        cout << "Tạo đối tượng của sample1" << endl;
    }
    ~Sample1() {
        cout << "Hủy đối tượng của sample1" << endl;
    }
};

class Sample2 {
public:
    Sample2() {
        int i = 7;
        cout << "Tạo đối tượng của sample2" << endl;
        throw i;
    }
    ~Sample2() {
        cout << "Hủy đối tượng của sample2" << endl;
    }
};

int main() {
    try {
        Sample1 s1;
        Sample2 s2;
    } catch(int i) {
        cout << "Đã bắt " << i << endl;
    }
}

Kết quả

Tạo đối tượng của sample1
Tạo đối tượng của sample2
Hủy đối tượng của sample1
Đã bắt 7