enum은 사용하면 해당 스코프에서 그냥 접근이 가능하다. 그래서 enum에서 지정한 이름을 사용할 수 없다. 그러나 enum class는 범위 한정자(::)를 사용하여 접근해야 한다(이름 충돌 방지). 같은 이름을 다른 곳에서 쓸 수 있다.
함수를 삭제하면 그 함수를 호출하는 것은 안된다. 코드의 의도를 분명히 전할 수 있다.
Dog(const &Dog a) { } = delete;