当前位置:嗨网首页>书籍在线阅读

85-枚举

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

B.9.5 枚举

C++使用枚举比C严格。特别是,只能把 enum 常量赋给 enum 变量,然后把变量与其他值作比较。不经过显式强制类型转换,不能把 int 类型值赋给 enum 变量,而且也不能递增一个 enum 变量。下面的代码说明了这些问题:

enum sample {sage, thyme, salt, pepper};
enum sample season;
season = sage;            /* C和C++都可以 */
season = 2;               /* 在C中会发出警告,在C++中是一个错误 */
season = (enum sample) 3; /* C和C++都可以*/
season++;                 /* C可以,在C++中是一个错误 */

另外,在C++中,不使用关键字 enum 也可以声明枚举变量:

enum sample {sage, thyme, salt, pepper};
sample season;    /* C++可以,在C中不可以 */

与结构和联合的情况类似,如果一个变量和 enum 类型的同名会导致名称冲突。