enum枚举与int转换

枚举类型相当于#define

#include 
#include 
enum day
{
    d1,d2
};

//
/*
#define d1 0
#define d2 1
*/
int main ()
{
    int m = int(d2);
    day n;//n是day类型的。不应将n理解成enumeration类型,更不应将其理解成int类型。
    //day类型可以自动转换为int类型,但int类型转换为day类型需要强制转换(day)

    std::cout << "m = " << m << std::endl ;
    std::cout << "d2= " << d2 << std::endl;

    std::cout << day(m) << std::endl;

    std::cout << day(1) << std::endl;

    std::cout << typeid(day(m)).name() << std::endl;
    std::cout << typeid(m).name() << std::endl;
    std::cout << typeid(d2).name() << std::endl;

    return 0;
}

你可能感兴趣的:(c++,enum)