멤버 함수의 정적 변수는 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; }