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

C++에서 정적 개체는 언제 소멸됩니까?


정적 개체는 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;
}