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

Lớp lưu trữ tĩnh trong C ++


Lớp lưu trữ tĩnh hướng dẫn trình biên dịch giữ một biến cục bộ tồn tại trong suốt thời gian tồn tại của chương trình thay vì tạo và hủy nó mỗi khi nó đi vào và ra khỏi phạm vi. Do đó, việc làm cho các biến cục bộ trở nên tĩnh cho phép chúng duy trì các giá trị của chúng giữa các lần gọi hàm.

Công cụ sửa đổi tĩnh cũng có thể được áp dụng cho các biến toàn cục. Khi điều này được thực hiện, nó khiến phạm vi của biến đó bị hạn chế đối với tệp mà nó được khai báo.

Trong C ++, khi static được sử dụng trên một thành viên dữ liệu của lớp, nó chỉ khiến một bản sao của thành viên đó được chia sẻ bởi tất cả các đối tượng trong lớp của nó.

Ví dụ

#include <iostream>
void func( void ) {
   static int i = 10; // local static variable
   i++;
   std::cout << "i is " << i ;
   std::cout << " and count is " << count << std::endl;
}

static int count = 6; /* Global variable */

int main() {
   while(count--)
   {
      func();
   }
}

Đầu ra

Điều này sẽ đưa ra kết quả -

i is 10 and count is 5
i is 11 and count is 4
i is 12 and count is 3
i is 13 and count is 2
i is 14 and count is 1
i is 15 and count is 0