게임 엔진 개발

[게임 엔진 개발] enum class & static 변수 선언

LKBaekjoon 2024. 6. 27. 14:58
반응형

앞서 공부하고 정리한 내용은 무료 배포된 유튜브 "얌얌코딩"님의 강의를 시청한 후임을 밝힙니다.

LV06 Input (youtube.com)

 

얌얌코딩 (게임 개발)

어려운 게임 개발을 쉽게 배우는 방법!

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) 이런식으로 접근해서 캐스팅 해야만 한다.
반응형