Post

Q.static

Q. static에 대해 설명
A. static 키워드는 정적 속성을 가지게 합니다. 4가지 유형으로 나눌 수 있습니다.

  1. 전역/파일 범위의 static
    1
    
    static int g_value = 10;
    
    • 해당 cpp파일 내부에서만 접근 가능
    • 다른 파일에서 참조 불가
    • 전역 변수 충돌 방지 (요즘은 anonymous namespace로 대체하는 경우 많음)
  2. 함수 내부의 static 변수
    1
    2
    3
    4
    
    void Func() {
     static int count = 0;
     count++;
    }
    
    • 프로그램 전체에서 하나만 생성
    • 함수 호출이 끝나도 값이 유지됨
    • 초기화는 한 번만 수행
    • 프레임 단위 누적 값, 호출 횟수 관리 등에 사용
  3. 클래스의 static 멤버 변수
    1
    2
    3
    4
    
    class Player {
    public:
     static int playerCount;
    };
    
1
int Player::playerCount = 0;
1
2
3
4
- 객체가 아닌 클래스에 속함
- 모든 객체가 같은 값 공유
- cpp 파일에서 반드시 정의 필요
- 전체 객체 수, 공통 설정 값 관리 등에 사용
  1. 클래스의 static 멤버 함수
    1
    2
    3
    4
    5
    6
    
    class Math {
    public:
     static int Add(int a, int b) {
         return a + b;
     }
    };
    
1
Math::Add(1, 2);
  • 사용 예: Math::Add(1,2);
  • this 포인터 없음

Q. static, extern
extern은 다른 파일의 외부 변수를 사용하고자 할 때 사용합니다.

This post is licensed under CC BY 4.0 by the author.