关于枚举(c++)

来源:互联网 发布:磁盘调度电梯算法 编辑:程序博客网 时间:2024/06/10 07:33

总是忘记一些枚举的使用细节,为了方便自己总结一下

定义格式:enum enumName {符号常量列表};(列表之间逗号隔开)

1.枚举定义时符号常量默认是从0开始自增1来编号的

2.当符号常量中如果有给定初值的常量,则此常量之前依然按默认编号,列表中给定初值的常量之后从初始化值开始自增1来自动编号

    例 enum enu1 {a,b=97,c};   此时a编号为0,c编号为98。初试化的值要求为整型值(char 值将作为其ASCii码,例中 b=97与b='a'等效)

3.枚举变量在程序中是作为整型来处理的,但其值的变化范围不能超出给定的常量范围(范围指列表中给定的所有确定编号值)

4.在不进行强制类型转换情况下,只能将定义时使用的枚举常量赋给相应的枚举变量。

5.当定义的多个枚举中有同名常量时,可使用作用域内枚举(c++11)。声明格式:enum  class  enuname{...};或者

enum struct enuname{...}; 此时枚举变量赋值时要加上域(枚举名)来限定.

举例:enum class enu1{a,b,c};

           enum class enu2{a=1,b,c};

           enu1  en1=enu1::a;

           enu2  en2=enu2::a;

cout<<(int)en1<<endl<<(int)en2<<endl;

输出结果为:

0

1

0 0
原创粉丝点击