标准c++中的enum
enum people{man,woman};
c++11中的enum
enum class people{man,woman};
在c++11中enum是“强类型”,不默认的转换成int,而且有类域
people p=man;//标准c++
people pp=people::woman;//c++11,因为有类域,所以可以这样写
int i=p;//标准c++中正确,而c++11中错误,因为其是强类型
int i=(int)p;//c++11中该这样写
int i=5;
p=i;//错误,应为p=(people)i;
c++11中的枚举型 可以指定枚举的底层数据类型,所以可以进行简单的互通操作以及保证枚举值的体积尺寸大小:
enum class people:char{man=4,woman};
枚举类的底层数据类型必须是有符号或无符号的整型,默认情况下是int。