[c++] 정적 멤버 변수

C++에서 정적 멤버 변수는 클래스의 모든 객체에 대해 동일한 변수를 가지며, 클래스의 모든 객체에 의해 공유된다. 정적 멤버 변수는 static 키워드를 사용하여 선언되며, 클래스의 모든 객체가 동일한 변수 값을 공유하고 클래스의 인스턴스와는 별도로 존재한다.

정적 멤버 변수는 클래스에서 공통된 속성이나 특성을 표현하는 데 유용하며, 메모리 효율적으로 관리할 수 있어 유용하게 활용된다.

정적 멤버 변수의 선언과 초기화

class MyClass {
public:
    static int count; // 정적 멤버 변수 선언
};

int MyClass::count = 0; // 정적 멤버 변수 초기화

위의 예제에서 countMyClass의 정적 멤버 변수로 선언되고, 클래스 외부에서 초기화된다.

정적 멤버 변수의 사용

#include <iostream>

class MyClass {
public:
    static int count;
    int id;

    MyClass() {
        id = ++count;
    }
};

int MyClass::count = 0;

int main() {
    MyClass obj1, obj2, obj3;
    std::cout << obj1.id << std::endl; // 1
    std::cout << obj2.id << std::endl; // 2
    std::cout << obj3.id << std::endl; // 3
    std::cout << MyClass::count << std::endl; // 3
    return 0;
}

위의 예제에서 countMyClass의 모든 객체에 의해 공유되며, 생성자를 통해 각 객체의 id가 증가할 때마다 count도 증가한다.

정적 멤버 변수는 클래스의 객체가 생성되기 전에 초기화되며, 클래스의 내부 및 외부에서 사용될 수 있다.

결론

C++의 정적 멤버 변수는 클래스의 모든 객체 사이에 공유되는 중요한 속성을 나타내는 데 유용하며, 메모리 효율적으로 관리될 수 있다. 사용 시 적절하게 초기화되고, 클래스 이름을 통해 접근하며, 클래스의 모든 객체에 대해 동일한 값을 가진다.

더 많은 자세한 정보는 cplusplus.com을 참고할 수 있습니다.