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

Các biến tĩnh trong các hàm thành viên hoạt động như thế nào trong C ++?


Các biến static trong các hàm thành viên được khai báo bằng từ khóa static. Không gian cho các biến tĩnh chỉ được cấp phát một lần và không gian này được sử dụng cho toàn bộ chương trình. Ngoài ra, chỉ có một bản sao của các biến tĩnh này trong toàn bộ chương trình.

Một chương trình chứng minh các biến tĩnh trong các hàm thành viên trong C ++ được đưa ra như sau.

Ví dụ

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

Đầu ra

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

The default value of static variable a is: 0
The value of static variable b is: 12

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

Hàm thành viên func () trong lớp Base chứa hai biến tĩnh a và b. Giá trị mặc định của a là 0 và giá trị của b là 12. Sau đó, các giá trị này được hiển thị. Đoạn mã hiển thị điều này như sau.

class Base {
   public :
   int func() {
      static int a;
      static int b = 12;
      cout << "The default value of static variable a is: " << a;
      cout << "\nThe value of static variable b is: " << b;
   }
};

Trong hàm main (), một đối tượng b của lớp Base được tạo. Khi đó hàm func () được gọi. Đoạn mã hiển thị điều này như sau.

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