82. C++ 정적 멤버

C++ 정적 멤버 (static)

1. 개요

1.1 문서 개요

이 문서는 C++에서 클래스의 정적(static) 멤버에 대해 설명합니다. 정적 멤버는 클래스에 속하면서도 개별 객체가 아닌 클래스 전체에서 공유되는 멤버입니다.

2. 내용

2.1 정적 멤버 변수

2.1.1 선언 및 정의

class MyClass {
public:
    static int count;
};
int MyClass::count = 0;
  • static 키워드로 선언하며, 클래스 외부에서 한 번만 정의해야 합니다.
  • 모든 객체가 동일한 count 값을 공유합니다.

2.1.2 사용

MyClass::count++;  // 객체 없이도 접근 가능

2.2 정적 멤버 함수

2.2.1 선언 및 사용

class MyClass {
public:
    static void printCount() {
        std::cout << count << std::endl;
    }
};
  • static 멤버 함수는 객체 없이 클래스 이름으로 직접 호출 가능합니다.
  • this 포인터를 사용할 수 없습니다.

2.3 정적 멤버의 활용 예

2.3.1 객체 개수 추적

class Counter {
private:
    static int count;
public:
    Counter() { count++; }
    static int getCount() { return count; }
};
int Counter::count = 0;

정적 멤버를 통해 생성된 객체의 총 수를 추적할 수 있습니다.

3. 마무리

정적 멤버는 클래스 수준에서 공유되는 자원을 정의할 수 있게 하며, 객체 수 관리, 공용 상수, 클래스 유틸리티 함수 등에 활용됩니다. 멤버 변수는 반드시 클래스 외부에서 정의되어야 하며, 정적 함수는 this에 접근할 수 없습니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

error: Content is protected !!
위로 스크롤