변환 및 열거 형식

모든 열거자가 열거 형식은 정수 계열 형식 이므로 정수 계열 확장에서 다른 정수 계열 형식으로 변환할 수 있습니다.다음 예제를 고려해 보십시오.

// enumerated_types.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;

enum Days
{
    Sunday,
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday
};

int  i;
Days d = Thursday;
int main()
{
   i = d;    // Converted by integral promotion.
   cout << "i = " << i << "\n";
}

bd77ckhw.collapse_all(ko-kr,VS.110).gifOutput

i = 4

다른 정수 계열 형식에서 열거 형식으로의 암시적 변환은 없습니다입니다.따라서 다음 문을 오류가 있습니다 (앞의 예제로 계속).

d = 6;    // Erroneous attempt to set d to Saturday.

암시적 변환이 존재 하는 경우 배정에는 이러한 변환을 수행 하려면 캐스트를 사용 해야 합니다.

d = (Days)6;    // Explicit cast-style conversion to type Days.
d = Days( 4 );  // Explicit function-style conversion to type Days.

앞의 예제는 열거자와 일치 하는 값의 변환을 보여 줍니다.일치 하지 않는 값 열거자 중 하나에 변환 보호 메커니즘이입니다.예를 들면 다음과 같습니다.

d = Days( 967 );

일부 이러한 변환이 작동 하지 않을 수 있습니다.그러나 결과 값은 열거자 중 하나 된다는 보장은 없습니다 있습니다.열거자의 크기 변환 되는 값을 저장 하는 것이 너무 작은 경우 또한 저장 값 예상 수 없습니다.

참고 항목

참조

C + + 열거형 선언