Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 static 키워드와 다양한 용도

<시간/>

static 키워드를 사용하면 변수나 데이터 멤버나 함수를 다시 수정할 수 없습니다. 프로그램의 수명 동안 할당됩니다. 정적 함수는 클래스 이름을 사용하여 직접 호출할 수 있습니다.

정적 변수는 한 번만 초기화됩니다. 컴파일러는 프로그램이 끝날 때까지 변수를 유지합니다. 정적 변수는 함수 내부 또는 외부에서 정의할 수 있습니다. 블록에 로컬입니다. 정적 변수의 기본값은 0입니다. 정적 변수는 프로그램이 실행될 때까지 살아 있습니다.

다음은 정적 키워드의 구문입니다.

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

여기,

데이터 유형 − int, char, float 등과 같은 변수의 데이터 유형.

변수 이름 − 사용자가 지정한 변수의 이름입니다.

가치 − 변수를 초기화할 값. 기본적으로 0입니다.

반품_유형 − 값을 반환할 함수의 데이터 유형입니다.

함수 이름 − 함수에 대한 임의의 이름.

다음은 정적 키워드의 예입니다.

예시

#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;
}

출력

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

위의 프로그램에서는 static 변수가 선언되어 있습니다. 정적 함수는 아래와 같이 Base 클래스에 정의되어 있습니다. -

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

클래스 이후와 main() 이전에 정적 변수는 다음과 같이 초기화됩니다.

int Base::val=28;

main() 함수에서 Base 클래스의 객체가 생성되고 정적 변수가 호출됩니다. 정적 함수도 Base 클래스의 객체를 사용하지 않고 호출됩니다.

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