English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

정적 C ++클래스 멤버는 언제 초기화되는가?

static 키워드를 사용하여 정적 C를 정의할 수 있습니다. ++클래스 멤버. 클래스 안의 정적 멤버는 모든 클래스 객체에 의해 공유되며, 메모리에 정적 클래스 멤버의 단일 복사본이 있기 때문에 클래스의 객체 수와 상관없습니다.

이 클래스의 첫 번째 객체가 어떤 다른 방식으로도 초기화되지 않았다면, 첫 번째 객체를 생성할 때 정적 클래스 멤버가 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() {
   예제 obj;
   obj.func();
   return 0;
}

출력 결과

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

static 멤버 a의 값: 20

지금 그 위의 프로그램을 이해해 보겠습니다.

Example 클래스에서, 정적 클래스 멤버는 a입니다. 이 함수func();a의 값을 표시합니다. 다음과 같은 코드 단락을 표시합니다.

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

함수 내에서main();، Example 클래스의 객체 obj를 생성합니다. 그런 다음func();이 함수를 호출하여 a의 값을 표시합니다. 다음과 같은 코드 단락을 표시합니다.

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