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

Từ khóa static và các cách sử dụng khác nhau của nó trong C ++

Khi từ khóa static được sử dụng, các thành viên hoặc hàm biến hoặc dữ liệu không thể được sửa đổi lại. Nó được phân bổ cho thời gian tồn tại của chương trình. Các hàm tĩnh có thể được gọi trực tiếp bằng cách sử dụng tên lớp.

Biến static chỉ được khởi tạo một lần. Trình biên dịch vẫn tồn tại biến cho đến khi kết thúc chương trình. Biến static có thể được định nghĩa bên trong hoặc bên ngoài hàm. Họ là địa phương của khối. Giá trị mặc định của biến static là 0. Các biến tĩnh vẫn tồn tại cho đến khi chương trình được thực thi.

Sau đây là cú pháp của từ khóa static.

static datatype variable_name = value; // Static variable
   static return_type function_name { // Static functions
   ...
}

Đây,

loại dữ liệu - Kiểu dữ liệu của biến như int, char, float, v.v.

tên_biến - Đây là tên của biến do người dùng cung cấp.

giá trị - Bất kỳ giá trị nào để khởi tạo biến. Theo mặc định, nó bằng không.

return_type - Kiểu dữ liệu của hàm để trả về giá trị.

function_name - Bất kỳ tên nào cho hàm.

Sau đây là một ví dụ về từ khóa tĩnh.

Ví dụ

#include <bits/stdc++.h>
using namespace std;
class Base {
   public : static int val;
   static int func(int a) {
      cout << "\nStatic member function is called";
      cout << "\nThe value of a : " << a;
   }
};
int Base::val=28;
int main() {
   Base b;
   Base::func(8);
   cout << "\nThe static variable value : " << b.val;
   return 0;
}

Đầu ra

Static member function is called
The value of a : 8
The static variable value : 28

Trong chương trình trên, một biến tĩnh được khai báo. Một hàm tĩnh được định nghĩa trong lớp Base như được hiển thị bên dưới -

public : static int val;
static int func(int a) {
   cout << "\nStatic member function called";
   cout << "\nThe value of a : " << a;
}

Sau lớp và trước main (), biến tĩnh được khởi tạo như sau.

int Base::val=28;

Trong hàm main (), đối tượng của lớp Cơ sở được tạo và biến static được gọi. Hàm tĩnh cũng được gọi mà không cần sử dụng đối tượng của lớp Cơ sở.

Base b;
Base::func(8);
cout << "\nThe static variable value : " << b.val;