1. 枚举类定义
语法形式
enum class 枚举类型名: 底层类型 {枚举值列表};
如果不指定底层类型,默认为int
例:
enum class Type { General, Light, Medium, Heavy};
enum class Type: char { General, Light, Medium, Heavy};
enum class Category { General=1, Pistol, MachineGun, Cannon};
2.枚举类的优势
2.1 强作用域,其作用域限制在枚举类中:
例: 使用Type的枚举值General: Type::General
2.2 转换限制,枚举类对象不可以与整型隐式地互相转换。
2.3 可以指定底层类型
例: enum class Type: char { General, Light, Medium, Heavy};
枚举类举例:
#include<iostream>
using namespace std;
enum class Side{ Right, Left };
enum class Thing{ Wrong, Right }; //都有Right,但是不冲突
int main()
{
Side s = Side::Right;
Thing w = Thing::Wrong;
cout << (s == w) << endl; //尽管s和w都是整型,但编译错误,因为无法直接比较不同枚举类
return 0;
}
北木.
发布了250 篇原创文章 · 获赞 27 · 访问量 2万+
私信
关注