[c++] 구조체와 클래스의 정적 멤버 변수

C++에서 구조체와 클래스를 사용할 때, 각각의 정적 멤버 변수(static member variable)를 사용하는 방법에 대해 알아보겠습니다.

구조체(Struct)의 정적 멤버 변수

구조체에서 정적 멤버 변수(static member variable)를 사용하기 위해서는 해당 변수를 정의할 때 static 키워드를 사용해야 합니다.

struct MyStruct {
    static int count;
};

int MyStruct::count = 0; // 정적 멤버 변수의 외부 초기화

구조체의 정적 멤버 변수는 모든 구조체 인스턴스에서 공유됩니다. 정적 멤버 변수를 수정하면 모든 인스턴스에 영향을 미칩니다.

클래스(Class)의 정적 멤버 변수

클래스에서도 정적 멤버 변수를 사용하는 방법은 구조체와 동일합니다.

class MyClass {
public:
    static int count;
};

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

클래스의 정적 멤버 변수 또한 모든 클래스 인스턴스에서 공유되며, 하나의 값에 대한 모든 변경은 다른 모든 인스턴스에 영향을 미칩니다.

정적 멤버 변수의 활용

정적 멤버 변수는 클래스 또는 구조체 수준의 데이터를 유지하고 공유하기 위해 사용됩니다. 예를 들어, 객체 생성 횟수를 추적하거나, 클래스 내부에서 공유해야 하는 데이터를 저장하는 데 유용하게 사용됩니다.

이를 통해 클래스나 구조체의 모든 인스턴스 간에 데이터를 공유하고, 클래스 또는 구조체 수준에서 데이터를 추적하거나 공유할 수 있습니다.

결론

구조체와 클래스에서 정적 멤버 변수를 사용하면 객체 간 데이터 공유와 추적이 훨씬 용이해집니다. 정적 멤버 변수를 적절히 활용하여 프로그램의 효율성을 높일 수 있습니다.

이상으로 C++의 구조체와 클래스에서의 정적 멤버 변수 사용에 대해 알아보았습니다.