aug 02, 2019
admin
0
166

enum c++ 예제

범위로 처음 선언된 열거형은 나중에 범위가 지정되지 않은 것으로 선언할 수 없으며 그 반대의 경우도 마찬가지입니다. 열거형의 모든 선언은 기본 형식에 동의해야 합니다. Visual Studio 2017 버전 15.3 이상(/std:c++17 사용 가능): 명시적 기본 형식및 열거자가 없는 열거형(일반 또는 범위)을 정의하면 사실상 다른 형식에 대한 암시적 변환이 없는 새 정수 형식을 도입할 수 있습니다. 기본 제공 형식 대신 이 형식을 사용하면 실수로 암시적 변환으로 인한 미묘한 오류 가능성을 제거할 수 있습니다. 깊이 있는 첫 번째 검색을 프로그래밍하고 가장자리가 트리, 뒤로, 앞으로 또는 교차인지 여부에 태그를 지정하려고 한다고 가정해 보세요. 네 가지 가능성을 가진 열거형 EDGE_TYPE을 만들고 이를 사용하여 가장자리에 태그를 붙일 수 있습니다. 우리는 다음과 같이 주어진 ”열거 /열거형”을 선언 / 정의 할 수 있습니다 : 반면에 #define 몇 가지 근본적인 이점이 있으며, 그 중 하나는 #ifdef 존재를 테스트 할 수 있다는 것입니다. 이 기능은 여러 버전의 라이브러리를 지원해야 하고 사용 가능한 경우 선택적으로 새 열거형 선택 옵션을 사용하려는 경우에 유용합니다. 열거형 형식의 변수도 정의할 수 있습니다. 두 가지 방법으로 정의할 수 있습니다: 캐스트는 int를 범위 또는 범위가 없는 열거형으로 변환하는 데 필요합니다. 그러나 캐스트 없이 정수 값으로 범위가 없는 열거형기를 승격할 수 있습니다. 열거자 다이아몬드에는 값 1이 할당됩니다.

후속 열거자가 명시적 값을 부여하지 않으면 이전 열거형 및 1의 값을 받습니다. 이전 예제에서 하트는 값 2, 클럽은 3 등을 갖습니다. 열거형의 열거형 의 열거형 자 목록입니다. 범위의 모든 열거자 또는 변수 이름은 고유해야 합니다. 그러나 값을 복제할 수 있습니다. 범위가 범위를 비범위열거로 하면 범위가 주변 범위입니다. 범위가 있는 열거형에서 범위는 열거형 목록 자체입니다. 범위가 조정된 열거형에서 목록이 비어 있을 수 있으며 이는 사실상 새 정수 형식을 정의합니다.

class 선언에서 이 키워드를 사용 하 여 열거형 범위가 지정 하 고 식별자를 제공 해야 합니다. 이 컨텍스트에서 시맨티컬과 동일하므로 클래스 대신 구조체 키워드를 사용할 수도 있습니다. 위의 예에서 보았듯이 열거형 선언 중에 열거형 변수 dir을 선언한 다른 방법이 있습니다. 다음 예제에서는 기본 열거 사용량을 보여 줍니다: 열거형은 값이 값 범위로 제한되는 별개의 형식입니다(자세한 내용은 아래 참조) 명시적으로 명명된 상수(”열거형”)가 포함될 수 있습니다. 상수의 값은 열거형의 기본 형식이라고 하는 정수 형식의 값입니다. 범위가 없는 열거형이 클래스 멤버인 경우 클래스 멤버 액세스 연산자를 사용하여 열거형에 액세스할 수 있습니다. 및 ->: 이러한 방식으로 암시적 변환을 사용하면 의도하지 않은 부작용이 발생할 수 있습니다. 범위가 정해지지 않은 열거형과 관련된 프로그래밍 오류를 제거하기 위해 범위가 조정된 열거형 값이 강력하게 입력됩니다. 범위 열거자는 열거형 형식 이름(식별자)으로 한정되어야 하며 다음 예제와 같이 암시적으로 변환할 수 없습니다.

구현에 `enum` 키워드를 사용합니다. C/C++의 #define 전처리기와 관련이 있습니다. 정수 숫자를 나타내도록 정의할 수도 있습니다. 일부 라이브러리 저자는 먼저 열거형으로 상수를 정의하는 하이브리드 접근 방식을 사용합니다: 다이아몬드, 하트, 클럽 및 스페이드의 값은 각각 5, 6, 4 및 5입니다. 5가 두 번 이상 사용됩니다. 의도되지 않은 경우에도 허용됩니다.

POST CATEGORIES

Okategoriserade