多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# C++ 枚举 > 原文: [https://www.programiz.com/cpp-programming/enumeration](https://www.programiz.com/cpp-programming/enumeration) #### 在本文中,您将学习使用枚举(`enum`)。 此外,您还将学习 C++ 编程中通常使用枚举的地方。 枚举是用户定义的数据类型,由整数常量组成。 要定义枚举,使用关键字`enum`。 ```cpp enum season { spring, summer, autumn, winter }; ``` 在此,枚举的名称是`season`。 并且,`spring`,`summer`和`winter`是`season`类型的值。 默认情况下,`spring`为 0,`summer`为 1,依此类推。 您可以在声明过程中更改枚举元素的默认值(如有必要)。 ```cpp enum season { spring = 0, summer = 4, autumn = 8, winter = 12 }; ``` * * * ## 枚举类型声明 创建枚举类型时,仅创建变量的蓝图。 这是创建枚举类型变量的方法。 ```cpp enum boolean { false, true }; // inside function enum boolean check; ``` 在此,创建类型为`enum boolean`的变量`check`。 这是使用不同语法声明相同`check`变量的另一种方法。 ```cpp enum boolean { false, true } check; ``` * * * ### 示例 1:枚举类型 ```cpp #include <iostream> using namespace std; enum week { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }; int main() { week today; today = Wednesday; cout << "Day " << today+1; return 0; } ``` **输出** ```cpp Day 4 ``` * * * ### 示例 2:更改枚举的默认值 ```cpp #include <iostream> using namespace std; enum seasons { spring = 34, summer = 4, autumn = 9, winter = 32}; int main() { seasons s; s = summer; cout << "Summer = " << s << endl; return 0; } ``` **输出** ```cpp Summer = 4 ``` * * * ## 为什么在 C++ 编程中使用枚举? 枚举变量仅取许多可能值中的一个值。 示例来演示它, ```cpp #include <iostream> using namespace std; enum suit { club = 0, diamonds = 10, hearts = 20, spades = 3 } card; int main() { card = club; cout << "Size of enum variable " << sizeof(card) << " bytes."; return 0; } ``` **输出** ```cpp Size of enum variable 4 bytes. ``` 这是因为整数的大小为 4 个字节。 这使枚举成为使用标志的好选择。 您可以使用 [C++ 结构](/cpp-programming/structure "C structures")完成相同的任务。 但是,使用枚举可以提高效率和灵活性。 * * * ### 如何将枚举用于标志? 让我们举个例子, ```cpp enum designFlags { ITALICS = 1, BOLD = 2, UNDERLINE = 4 } button; ``` 假设您正在设计 Windows 应用的按钮。 您可以将标记`ITALICS`,`BOLD`和`UNDERLINE`设置为文本。 上面的伪代码中所有积分常数都是 2 的幂是有原因的。 ```cpp // In binary ITALICS = 00000001 BOLD = 00000010 UNDERLINE = 00000100 ``` 由于积分常数是 2 的幂,因此您可以使用按位 OR `|`运算符。 这使您可以一次选择两个或多个标志。 例如, ```cpp #include <iostream> using namespace std; enum designFlags { BOLD = 1, ITALICS = 2, UNDERLINE = 4 }; int main() { int myDesign = BOLD | UNDERLINE; // 00000001 // | 00000100 // ___________ // 00000101 cout << myDesign; return 0; } ``` 输出量 ```cpp 5 ``` 当输出为 5 时,您始终知道会使用粗体和下划线。 另外,您可以在要求中添加标志。 ```cpp if (myDesign & ITALICS) { // code for italics } ``` 在这里,我们在设计中添加了斜体。 注意,仅在[`if`语句内](/cpp-programming/if-else "C++ if statement")编写斜体代码。 您可以在 C++ 编程中完成几乎任何事情而无需使用枚举。 但是,它们在某些情况下可能非常方便。 那就是优秀程序员与优秀程序员的不同之处。