게임 엔진 개발
[게임 엔진 개발] enum class & static 변수 선언
LKBaekjoon
2024. 6. 27. 14:58
반응형
앞서 공부하고 정리한 내용은 무료 배포된 유튜브 "얌얌코딩"님의 강의를 시청한 후임을 밝힙니다.
얌얌코딩 (게임 개발)
어려운 게임 개발을 쉽게 배우는 방법!
www.youtube.com
Static 변수 선언
- 아래와 같이 선언하면, 다른 cpp 파일에서 이 sg에 대해 test struct를 통하지 않고서는 접근할 수 없다
struct test {
static int sg;
}
- 클래스 안에서 선언하더라도 전체 메모리에 올라가는 단 하나의 전역 변수처럼 기능한다.
- 클래스 바깥에서는 이 전역 변수에 접근할 수 없다.
- 사용 영역을 제한 시킬 수 있다는 점이 있다.
enum class 선언
- 기존에 enum들을 구별하기 위해 c++11부터 추가된 것이 enum class 라고 생각하면 편할 것 같다.
- 예시는 아래 코드이다.
enum what {
a,
b,
c,
d
}
enum this {
a,
c
}
int ans = c; //error
- c라는 값이 what이라는 enum과 this라는 enum에 동시에 들어가 있고, 때문에 c의 값이 2가 될지 1이 될지를 컴파일러가 알 수 없어 에러를 내뱉는 것이다.
- 이를 해결하기 위해 enum class가 나왔다고 생각하면 된다.
- enum class what
- enum class this
- 로 정의 한다음, 접근하려면 what::c 혹은 this::c 로 접근한다.
- int로 casting 하기 위해서는 다만 static_cast<int>(what::c) 이런식으로 접근해서 캐스팅 해야만 한다.
반응형