Q.static
Q. static에 대해 설명
A. static 키워드는 정적 속성을 가지게 합니다. 4가지 유형으로 나눌 수 있습니다.
- 전역/파일 범위의 static
1
static int g_value = 10;
- 해당 cpp파일 내부에서만 접근 가능
- 다른 파일에서 참조 불가
- 전역 변수 충돌 방지 (요즘은 anonymous namespace로 대체하는 경우 많음)
- 함수 내부의 static 변수
1 2 3 4
void Func() { static int count = 0; count++; }
- 프로그램 전체에서 하나만 생성
- 함수 호출이 끝나도 값이 유지됨
- 초기화는 한 번만 수행
- 프레임 단위 누적 값, 호출 횟수 관리 등에 사용
- 클래스의 static 멤버 변수
1 2 3 4
class Player { public: static int playerCount; };
1
int Player::playerCount = 0;
1
2
3
4
- 객체가 아닌 클래스에 속함
- 모든 객체가 같은 값 공유
- cpp 파일에서 반드시 정의 필요
- 전체 객체 수, 공통 설정 값 관리 등에 사용
- 클래스의 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.