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

C++에서 멤버 함수의 정적 변수는 어떻게 작동합니까?


멤버 함수의 정적 변수는 static 키워드를 사용하여 선언됩니다. 정적 변수를 위한 공간은 한 번만 할당되며 이는 프로그램 전체에 사용됩니다. 또한 전체 프로그램에는 이러한 정적 변수의 복사본이 하나만 있습니다.

C++의 멤버 함수에서 정적 변수를 보여주는 프로그램은 다음과 같습니다.

예시

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

출력

위 프로그램의 출력은 다음과 같습니다.

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

이제 위의 프로그램을 이해합시다.

Base 클래스의 멤버 함수 func()에는 두 개의 정적 변수 a와 b가 있습니다. a의 기본값은 0이고 b의 값은 12입니다. 그런 다음 이러한 값이 표시됩니다. 이를 보여주는 코드 스니펫은 다음과 같습니다.

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

main() 함수에서 Base 클래스의 객체 b가 생성됩니다. 그런 다음 func() 함수가 호출됩니다. 이를 보여주는 코드 스니펫은 다음과 같습니다.

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