C++类枚举的使用

1 单独类枚举使用方法

#include <iostream>
enum class MyEnum :unsigned char //冒号后是指定枚举数据类型为 unsigned char
{
    one = 1,two,three
};

int main()
{
    std::cout << MyEnum::one << std::endl;
}

2 类内枚举使用方法

#include <iostream>
class MyClass
{
public:
    enum MyEnum {one = 0, two, three};
};

int main()
{
    std::cout << MyClass::one << std::endl;
}

3 类枚举变量声明及使用

#include <iostream>
class MyClass
{
public:
    enum MyEnum {one = 0, two, three};
};

int main()
{
    MyClass::MyEnum EENUM;
    EENUM = MyClass::one;
    //auto EENUM = MyClass::one;//可以使用自动类型
    std::cout << EENUM << std::endl;
}

4 类枚举错误荟萃

4.1 类枚举成员重复

#include <iostream>
class MyClass
{
public:
    enum MyEnum {one = 1, two, three};
    enum MyEnum_1 {one = 1};    //错误,因为在类内one这个枚举元素是唯一的,已经在上一句中定义了
};

int main()
{
    MyClass::MyEnum EENUM;
    EENUM = MyClass::one;
    std::cout << EENUM << std::endl;
}

4.2 类枚举变量赋值中,枚举名与枚举元素不对应

#include <iostream>
class MyClass
{
public:
    enum MyEnum {one = 1, two, three};
    enum MyEnum_1 {four= 4};
};

int main()
{
    MyClass::MyEnum EENUM;
    EENUM = MyClass::four;    //错误,因为MyClass::four不是MyClass::MyEnum枚举名的成员,是MyClass::MyEnum_1 的
    std::cout << EENUM << std::endl;
}