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

Khi nào các đối tượng tĩnh bị hủy trong C ++?


Các đối tượng static được khai báo với từ khóa static. Chúng chỉ được khởi tạo một lần và được lưu trữ trong vùng lưu trữ tĩnh. Các đối tượng tĩnh chỉ bị hủy khi chương trình kết thúc, tức là chúng tồn tại cho đến khi chương trình kết thúc.

Một chương trình thể hiện các đối tượng tĩnh trong C ++ được đưa ra như sau.

Ví dụ

#include <iostream>
using namespace std;
class Base {
   public :
   int func() {
      int a = 20;
      cout << "The value of a : " << a;
   }
};
int main() {
   static Base b;
   b.func();
   return 0;
}

Đầu ra

Kết quả của chương trình trên như sau.

The value of a : 20

Bây giờ chúng ta hãy hiểu chương trình trên.

Hàm func () trong lớp Base khai báo một biến int a và sau đó hiển thị giá trị của a. Đoạn mã hiển thị điều này như sau.

class Base {
   public :
   int func() {
      int a = 20;
      cout << "The value of a : " << a;
   }
};

Trong hàm main (), một đối tượng tĩnh b được tạo từ lớp Base. Khi đó hàm func () được gọi. Vì đối tượng b là tĩnh nên nó chỉ bị hủy khi chương trình kết thúc. Đoạn mã hiển thị điều này như sau.

int main() {
   static Base b;
   b.func();
   return 0;
}