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

Từ khóa tĩnh 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.

Đây là cú pháp của từ khóa static trong ngôn ngữ C ++,

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

Đây,

kiểu 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.

Đây là một ví dụ về biến tĩnh trong ngôn ngữ C ++,

Ví dụ

#include <bits/stdc++.h>
using namespace std;
class Base {
   public : static int val;
   static int func(int a) {
      cout << "\nStatic member function 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 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 và một hàm tĩnh được định nghĩa trong lớp Base như hình dưới đây -

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 sử dụng đối tượng của lớp Cơ sở như sau -

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