枚举 (Enum) 是一种 C++ 编程中使用的数据类型,它由命名值(例如元素、成员等)组成,这些命名值代表整型常量。它提供了一种定义和分类整型常量的方法。此外,它使代码更简单、更容易维护。在本教程中,您将深入了解 C++ 枚举。
在本教程中,我们将学习如何使用枚举。此外,通过示例,您将了解枚举在 C++ 编程中的常见用途。
用户定义数据类型 enum,通常称为枚举,允许您建立一种新的数据类型,其可能值的范围是固定的,并且变量可以从该值集中选择一个值。例如,假设您是一家冰淇淋店的老板,店里只有少量冰淇淋口味。因此,您只希望顾客从您店里的冰淇淋选择中进行选择。这变成了一个枚举,其中冰淇淋是枚举的名称,各种冰淇淋口味是其组成部分。
枚举
在 C++ 中,为了定义枚举,必须使用 enum 关键字以及用逗号分隔的元素。
枚举的基本语法如下
enum enum_name{ element1, element2, element3, element4,};
or
enum name_of_enum
{
Element1,
Element2,
Element3,
Element4,
Element5,
};
这里,“enum”关键字告诉代码该做什么,“name_of_enum”是赋予枚举的名称,“Element 1, Element 2,..., Element 5”是已分配给枚举的值。
例如
enum ice_cream
{
Vanilla,
Chocolate,
Butterscotch,
Mango,
Pineapple,
Strawberry
}
这些组件中的每一个都从 0 开始有一个值,例如香草(0)、巧克力(1)等。在 C++ 中,在声明枚举时可以更改上述默认值。
示例
enum season { winter, autumn,spring, summer};
在这种情况下,枚举的名称是 season。夏、冬、春、秋都是 season 类型。冬季默认从 0 开始,春季从 1 开始,依此类推。在声明期间,可以更改枚举元素的默认值(如果必要)。
enum season
{ winter = 0,
spring = 6,
autumn = 12,
summer = 18,
};
声明枚举变量时,也要包含枚举的名称。
int main()
{
ice_cream i;
return 0;
}
在这种情况下,枚举变量是 i。
只有在创建枚举类型时才构建变量的蓝图。以下是生成枚举类型变量的方法。
enum season { summer ,winter, autumn,spring };
int main(){
enum Seasons s;
return 0;
}
这里,名为 Season 的枚举变量显示为 s。此变量将表示一个季节。
枚举变量也可以如下声明
enum season { summer ,winter, autumn,spring } s;
另一个例子
enum boolean { false, true };
int main(){
enum boolean check;
return 0;
}
在这种情况下,创建了 enum boolean 类型的变量 check。
这是相同 check 变量的替代声明语法。
enum boolean
{
false, true
} check;
示例 1
#include <iostream>
using namespace std;
enum direction { East, West, North, South };
int main(){
direction dir;
dir = North;
cout << "The Direction: " << dir;
return 0;
}
输出
The Direction: 2
示例 2
我们使用静态转换运算符来输出 void 指针的内容。它将指针的数据类型从其原始 void* 类型更改为指针存储地址的适当数据类型。
#include <iostream>
using namespace std;
enum seasons { spring = 10, summer = 14, autumn = 19, winter = 11};
int main() {
seasons s;
s = Autumn;
cout << "Summer = " << s << endl;
return 0;
}
输出
Autumn = 19
枚举 (Enum) 是一种 C++ 编程中使用的数据类型,它由命名值(例如元素、成员等)组成,这些命名值代表整型常量。它提供了一种分类和定义整型常量的方法。此外,它使代码更简单、更容易维护。
枚举仅在变量预期具有可用值之一时使用。
例如
#include <iostream>
using namespace std;
enum direction { East = 10, West = 20, North = 30, South = 40 } dir;
int main() {
dir = North;
cout << "The Size of enum variable " << sizeof(North) << " bytes.";
return 0;
}
输出
The Size of enum variable 4 bytes.
因为一个整数的大小是 4 字节。因此,将枚举与标志一起使用是一个明智的主意。
同样的工作可以使用 C++ 结构完成。但是,使用枚举可以提供灵活性和效率。
考虑以下示例
enum designFlags { UNDERLINE = 1, ITALICS = 2 BOLD = 4 } button;
考虑为 Windows 程序创建一个按钮。要处理文本,您可以设置 UNDERLINE、ITALICS 和 BOLD 标志。
上述伪代码中的所有整型常量都是 2 的幂是有原因的。
// 在二进制中 UNDERLINE = 00000001 ITALICS = 00000010 BOLD = 00000100
由于整型常量是 2 的幂,您可以使用按位或 | 运算符同时组合两个或多个标志而不会重叠。通过这样做,您可以同时选择两个或多个标志。
例如
#include <iostream>
using namespace std;
enum printFlags { BOLD = 1, ITALICS = 2, UNDERLINE = 4};
int main() {
int myFlag = UNDERLINE | BOLD ;
// 00000001
// | 00000100
// ___________
// 00000101
cout << "Displaying myFlag = " << myFlag;
return 0;
}
输出
Displaying myFlag = 5
当输出为 5 时,您总是可以看到粗体和下划线被使用。
您还可以将标志包含在您的要求中。
if (myFlag & ITALICS) { // 斜体语句 }
在这种情况下,斜体已应用于我们的设计。需要记住的一点是,if 语句只包含斜体的代码。在不使用枚举的情况下,您几乎可以在 C++ 编程中完成所有事情。然而,它们在某些情况下可能非常有用。这就是普通程序员与优秀程序员的区别。
以下是枚举的一些优点