枚举(Enumeration)是一种用户定义的类型,用于将一组命名的整数常量(枚举值)组织起来,提高代码的可读性和可维护性。C++ 中的枚举分为传统枚举(Unscoped Enumeration) 和强类型枚举(Scoped Enumeration,C++11 引入),两者在语法、作用域和类型安全性上有显著差异。
1、传统枚举
传统枚举是 C++98 就存在的枚举类型,语法为:- enum 枚举名 { 枚举值1, 枚举值2, ..., 枚举值n };
复制代码 核心特性:
- 枚举值是命名的整数常量,默认从0开始递增(可显式指定值);
- 枚举值共享枚举所在的作用域(可能导致命名冲突);
- 可隐式转换为整数类型(如int);
- 底层类型由编译器自动选择(通常为int,但如果枚举值超过int范围,会选择更大的整数类型,如long long)。
示例:
[code]// 定义传统枚举:表示一周的工作日enum Weekday { Monday, // 默认值0 Tuesday, // 1(自动+1) Wednesday, // 2 Thursday = 5, // 显式指定为5 Friday // 6(5+1)};int main() { Weekday day = Monday; // 枚举值共享作用域:直接访问,无需枚举名限定 if (day == Monday) { // 隐式转换为int:输出0 std::cout |