枚举——c++标准

枚举的声明一般是定义:
枚举名
{
    枚举值1,
    枚举值2,
    。。。
};
即:
enum ETest
{
    TEST_VALUE_1,
    TEST_VALUE_2,
    ...
};


使用的时候直接使用里面的枚举值的名字,不需要限定符
也就是说应该用 TEST_VALUE_1, 而不是 ETest::TEST_VALUE_1。

int a = TEST_VALUE_1; //正确
int b =  ETest::TEST_VALUE_1; //错误,不过在微软的vs里面是警告,微软支持这种非标准扩展


另外,枚举值 只能是整形值,下面的是错误的
enum ETest2
{
    TEST_VALUE_FLOAT = 0.1f //错误,只能是整型值
}

然后就是一个枚举值无法隐式转换为整数,反之则可以:

int c = TEST_VALUE_2;//正确
ETest xx = 1;//错误
ETest xx = (ETest)1;//正确,强转了类型

原文地址:https://www.cnblogs.com/mokliu/p/2138878.html