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

정적 C++ 클래스 멤버는 언제 초기화됩니까?


정적 C++ 클래스 멤버는 static 키워드를 사용하여 정의할 수 있습니다. 클래스의 정적 멤버는 클래스의 개체 수에 관계없이 메모리에 정적 클래스 멤버의 복사본이 하나만 있기 때문에 모든 클래스 개체에서 공유됩니다.

정적 클래스 멤버는 다른 방법으로 초기화되지 않은 경우 클래스의 첫 번째 개체가 생성될 때 0으로 초기화됩니다.

C++에서 정적 클래스 멤버를 보여주는 프로그램은 다음과 같습니다.

예시

#include <iostream>
using namespace std;
class Example {
   public :
   static int a;
   int func() {
      cout << "The value of static member a: " << a;
   }
};
int Example::a = 20;
int main() {
   Example obj;
   obj.func();
   return 0;
}

출력

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

The value of static member a: 20

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

클래스 예제에서 정적 클래스 멤버는 입니다. func() 함수는 값을 표시합니다. 이를 보여주는 코드 스니펫은 다음과 같습니다.

class Example {
   public :
   static int a;
   int func() {
      cout << "The value of static member a: " << a;
   }
};
int Example::a = 20;

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

int main() {
   Example obj;
   obj.func();
   return 0;
}