정적 개체는 static 키워드로 선언됩니다. 한 번만 초기화되어 정적 저장 영역에 저장됩니다. 정적 개체는 프로그램이 종료될 때만 소멸됩니다. 즉, 프로그램이 종료될 때까지 유지됩니다.
C++에서 정적 개체를 보여주는 프로그램은 다음과 같습니다.
예시
#include <iostream> using namespace std; class Base { public : int func() { int a = 20; cout << "The value of a : " << a; } }; int main() { static Base b; b.func(); return 0; }
출력
위 프로그램의 출력은 다음과 같습니다.
The value of a : 20
이제 위의 프로그램을 이해합시다.
Base 클래스의 func() 함수는 int 변수 a를 선언한 다음 a 값을 표시합니다. 이를 보여주는 코드 스니펫은 다음과 같습니다.
class Base { public : int func() { int a = 20; cout << "The value of a : " << a; } };
main() 함수에서 정적 객체 b는 Base 클래스로 생성됩니다. 그런 다음 func() 함수가 호출됩니다. 객체 b는 정적이므로 프로그램이 종료될 때만 소멸됩니다. 이를 보여주는 코드 스니펫은 다음과 같습니다.
int main() { static Base b; b.func(); return 0; }