본문 바로가기
프로그래밍 언어/C,C++

C++ enum class와 enum

by pagehit 2021. 6. 10.
반응형

C++의 enumeration에는 크게 enum class와 enum이 있다. enum class는 scoped enum이라 하며, C와의 호환을 위해 unscoped enum인 enum이 있다. user-defined type이다.

enum class::을 이용해 값을 가져온다. enum class가 더 안전하다.

enum class Vehicle {
    Car,
    Bike,
    Truck
};

Fruit suv_vehicle = Vehicle::Car;

 

#include <cstdio>

enum class Race {
    Dinan,
    Teklan,
    Ivyn,
    Moiran,
    Camite,
    Julian,
    Aidan
};

int main() {
    Race race = Race::Teklan;

    switch (race) {
        case Race::Dinan: { // without parenthesis, correct
            printf("You work hard.");
        } break; // outside case block, correct
        case (Race::Teklan): { // with parenthesis, correct
            printf("You are very strong.");
        }
        case (Race::Ivyn): {
            printf("You are a great leader.");
        break; // inside case block, correct
        }
        default: {
            printf("Error: unknow race!");
        }
    }

    return 0;
}
반응형

댓글