enum class ( scoped enum )

1) 이름 공간 관리 ( scoped)

2) 암묵적인 변환 금지

 

 

기존의 enum은 unscoped type 이라서 같은 이름의 enum 타입이 있으면 안됐었다.

 

11 부터는 enum class 를 사용한다.

 

기존의 enum은 진짜 숫자 0,1,2,3,4 등과 똑같아서

 

double a  = PT_KNIGHT ; 해도 암묵적으로 변환시켜줬다.

 

그러나 enum class 는 암묵적인 변환을 시켜주지 않는다.

 

static_cast 를 하면 가능

 


delete

 

암묵적으로 어떠한 함수 호출이 안되도록 막을때 자주 사용

 

예를 들자면 실습에서 nullptr 만들때 nullptr이라는 어떤 주솟값을 지닌애가 아니기 때문에 operator& (  & 연산자) 를 막아야만 했다.

고전적인 방법으로는 간단하게 operator&를 private로 정의해서 사용하지 못하게 했다.

 

그러나 friend 라는 키워드로 그것을 뚫어줄 수 있기 때문에 어떻게 보면 반쪽 짜리 방패였다.

 

그래서 delete 를 쓴다.

 

통상적으로 public 으로 해주는게 관례이다.

 

 

 

 

 

 

 

'C++과 언리얼로 만드는 게임 개발 > Part1. C++ 문법' 카테고리의 다른 글

람다(lambda) && 스마트 포인터  (0) 2022.05.02
Day13 ( 84.82% )  (0) 2022.04.26
Day11 ( 80.36% )  (0) 2022.04.17
Day10 ( 79.46% )  (0) 2022.04.17
Day9 ( 71.42% )  (0) 2022.04.04

+ Recent posts