C++ 枚举
提示
- 枚举基础:枚举(Enumeration)是由关键字
enum
定义的用户自定义数据类型,包含一组整数常量。例如,enum season { spring, summer, autumn, winter };
中,默认spring
为0,summer
为1,以此类推。 - 修改枚举值:可以在声明枚举时更改其元素的默认值,例如:
enum season { spring = 0, summer = 4, autumn = 8, winter = 12 };
。 - 枚举的应用:枚举变量只能取定义的那些值,使得代码更清晰、易于管理。此外,枚举在处理标志(如设计标志)时特别有用,因为可以使用位运算符来组合多个枚举值。
枚举是由整型常量组成的用户定义的数据类型。要定义枚举,使用关键字 enum。
enum season { spring, summer, autumn, winter };
在此,枚举的名称为 season。
而 spring、summer、autumn 和 winter 是 season 类型的值。
默认情况下,spring 是 0,summer 是 1,以此类推。您可以在声明时更改枚举元素的默认值(如有必要)。
enum season
{ spring = 0,
summer = 4,
autumn = 8,
winter = 12
};
枚举类型声明
当您创建一个枚举类型时,仅创建了变量的蓝图。以下是创建枚举类型变量的方法。
enum boolean { false, true };
// 函数内部
enum boolean check;
此处,创建了一个名为 check 的 enum boolean
类型的变量。
以下是使用不同语法声明相同 check 变量的另一种方式。
enum boolean
{
false, true
} check;
示例 1:枚举类型
#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;
}
输出
Day 4
示例 2:更改枚举的默认值
#include <iostream>
using namespace std;
enum seasons { spring = 34, summer = 4, autumn = 9, winter = 32};
int main() {
seasons s;
s = summer;
cout << "夏季 = " << s << endl;
return 0;
}
输出
夏季 = 4
为什么在 C++ 编程中使用枚举?
枚举变量只能取许多可能值中的一个。举个例子来演示它,
#include <iostream>
using namespace std;
enum suit {
club = 0,
diamonds = 10,
hearts = 20,
spades = 3
} card;
int main()
{
card = club;
cout << "枚举变量的大小 " << sizeof(card) << " 字节。";
return 0;
}
输出
枚举变量的大小 4 字节。
这是因为整数的大小是 4 字节。;
这使得枚举成为与标志一起工作的好选择。
如何使用枚举进行标志?
让我们举个例子,
enum designFlags {
ITALICS = 1,
BOLD = 2,
UNDERLINE = 4
} button;
假设您正在为 Windows 应用程序设计一个按钮。您可以设置标志 ITALICS、BOLD 和 UNDERLINE 来处理文本。
以上伪代码中所有整型常量都是 2 的幂的原因在于。
// 二进制形式
ITALICS = 00000001
BOLD = 00000010
UNDERLINE = 00000100
由于整型常量是 2 的幂,因此您可以使用按位或运算符 | 同时组合两个或多个标志,而不会重叠。这允许您同时选择两个或多个标志。例如,
#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;
}
输出
5
当输出为 5 时,您总是知道使用了粗体和下划线。
此外,您可以根据需求添加标志。
if (myDesign & ITALICS) {
// 斜体代码
}
这里,我们已经将斜体添加到我们的设计中。请注意,只有在 if 语句 内部才编写了斜体代码。
您几乎可以在不使用枚举的情况下完成 C++ 编程中的任何任务。但是,在某些情况下它们可能非常方便。这就是区分优秀程序员和伟大程序员的原因。