C++ 枚举2025 年 8 月 29 日 | 阅读 8 分钟 在 C++ 中,枚举(Enum)是一种用户自定义数据类型,它包含一组固定的命名整数常量。我们可以使用 enum 关键字来定义枚举。它有助于使代码更具可读性和可维护性。 ![]() 它可以用于表示星期(Sun、Mon、Tue、Wed、Thu、Fri 和 Sat)、月份(Jan、Feb、Mar、Apr、May、June、July、Aug、Sep、Oct、Nov、Dec)、方向(NORTH、SOUTH、EAST 和 WEST)等。C++ 枚举常量是隐式静态和最终的。 语法它具有以下语法: 在这个语法中,
C++ 枚举示例让我们通过一个例子来说明 C++ 中的枚举。 示例编译并运行输出 Month: 3 说明 在这个例子中,我们声明了一个名为 month 的枚举,其中包含 mon_name。之后,将 mon_name 变量赋值为 Mar。当打印 mon_name + 1 时,它显示 3,因为枚举值默认从 0 开始分配。因此,Mar 是 2,2 + 1 是 3。mon_name + 1 的输出是 3,即 March。 初始化枚举在 C++ 中,枚举类型的变量必须通过为枚举类型变量赋值来初始化。我们可以通过赋值(=)运算符来初始化枚举变量,后面跟着一个枚举常量。 C++ 初始化枚举示例让我们通过一个例子来说明如何在 C++ 中初始化枚举。 示例编译并运行输出 My colour value: 2 说明 在这个例子中,我们创建了一个名为 Color 的枚举,其成员为 RED、GREEN 和 BLUE,每个成员都被自动赋予整数值 0、1 和 2。在 main() 函数中,创建了一个名为 myColor 的变量并用 BLUE 初始化,然后将 myColor 的底层整数值(2)打印到控制台。 更改命名常量的数值在 C++ 中,enum 定义了一个用户定义的数据类型,其中包含命名的整数常量。如果我们需要更改命名常量的数值,我们可以手动为枚举成员赋值。 语法它具有以下语法: 在这个语法中,
C++ 更改命名常量数值让我们通过一个例子来说明如何在 C++ 中更改命名常量的数值。 示例编译并运行输出 Priority level: 30 说明 在这个例子中,Priority 枚举中的命名常量被显式设置为 10、20、30 和 40。它们在运行时不会被更改,因为它们是最终值,但它们与原始的基于 0 的枚举值不同。 枚举的类型枚举主要可分为两类:作用域枚举和无作用域枚举。 ![]() 现在,我们将一一讨论这些枚举。 1) 无作用域枚举在 C++ 中,无作用域枚举是枚举的基本类型。我们可以使用 enum 关键字定义无作用域枚举,其枚举器名称在封闭作用域内声明。 无作用域枚举会自动分配从 0 开始的整数值,除非另有规定。枚举器名称可以隐式转换为整数,这使得与算术和比较运算符的无缝集成成为可能。如果我们想在作用域内将枚举器与变量赋予相同的名称,可能会导致错误。 C++ 无作用域枚举示例让我们通过一个例子来说明 C++ 中的无作用域枚举。 示例编译并运行输出 Numeric value of today: 3 It is a mid-day of the Week 说明 在此示例中,我们使用了无作用域枚举 Day 来表示一周中的天数,其隐式整数值从 0 开始。之后,将 Wed 赋值给变量 today,打印其数值,并检查它是否为星期三以显示消息。 2) 作用域枚举作用域枚举(Enum Class)可以使用 enum class 关键字定义。作用域枚举在 C++11 中引入。这些枚举提供了更好的类型安全性并避免了名称冲突。它不会隐式转换为整数,并且需要作用域解析(::)运算符来访问枚举值。 C++ 作用域枚举示例让我们通过一个例子来说明 C++ 中的作用域枚举。 示例编译并运行输出 The color is Yellow Integer value of color: 1 说明 在此示例中,我们定义了一个名为 Color 的枚举类,其中包含三个颜色常量。之后,将变量 c 赋值为作用域枚举器 Color::Yellow,并检查其值。由于枚举类不允许隐式转换为 int,因此它使用 static_cast<int>(c) 来打印枚举常量的底层整数值。 枚举作为函数参数在 C++ 中,我们可以将枚举用作函数参数。如果我们想将枚举作为函数参数传递,我们必须与其实例一起定义枚举名称。 C++ 枚举作为参数传递示例让我们通过一个例子来说明如何在 C++ 中将枚举作为参数传递。 示例编译并运行输出 Result: 25 说明 在此示例中,我们使用了一个 Operation 枚举,并将其作为参数传递给 calculate 函数,以选择加法或减法。之后,它使用 Add 函数调用该函数并显示返回的值 25。 C++ 枚举注意事项
枚举的优点C++ 中枚举的几个优点如下:
枚举的局限性C++ 中枚举的几个局限性如下:
结论总之,C++ 枚举使我们能够声明命名常量列表,它使我们的代码类型安全且易于阅读。枚举可以用特定值初始化,传递给函数,并通过作用域枚举(enum class)进行增强以提高类型安全性。它们提供了可读性更好和代码结构化的好处,但局限性包括名称冲突的可能性和某些情况下功能受限。 C++ 枚举选择题1) 第一个枚举常量的默认起始值是多少?
答案:B) 0 2) 以下关于 C++ 中的 enum class 的哪个操作是正确的?
答案:C) 它强制执行类型安全并防止名称冲突。 3) 当我们将 1 添加到 C++ 中的枚举常量时会发生什么?
答案:D) 如果枚举是连续的,它将得到下一个枚举值。 4) 以下哪个选项不是使用 C++ 枚举的优点?
答案:C) 与其他变量发生名称冲突 5) 如何在 C++ 中手动设置枚举的值?
答案:B) 在声明时分配特定值。 下一主题C++ 数学函数 |
在 C++ 中,结构体是用于创建结构化对象的用户定义类型。它们允许我们将不同数据类型的变量收集到一个名称下。结构体用于轻量级对象,例如矩形、颜色、点等。在 C++ 中,结构体可以包含数据...
阅读 8 分钟
在面向对象编程中,继承是最强大的概念之一。它允许一个类继承另一个类的特性和行为。重写是 C++ 编程中用于修改派生类中继承的成员函数行为的一种技术。在...
阅读 4 分钟
在 C++ 编程中,this 是一个关键字,它引用类的当前实例。类对象可以在其成员函数中使用此指针访问自身。理解 this 指针是在我们需要在面向对象结构中进行操作时的关键前提...
阅读 10 分钟
在 C++ 中,static 是一个关键字或修饰符,属于类型而不是实例。因此,不需要实例来访问静态成员。在 C++ 中,static 可以是字段、方法、构造函数、类、属性、运算符和事件。C++ 对各种函数使用 static 关键字...
阅读9分钟
在 C++ 中,成员函数是定义在类内部并与该类的对象关联的函数。它提供对类成员的访问,并可以直接操作和修改它们。这些函数定义了对象的行为,并且可以...
11 分钟阅读
C++ 提供了一些基本的数学函数,使用这些函数所需的头文件是 <math.h>。三角函数方法描述 cos(x) 计算 x 的余弦值。 sin(x) 计算 x 的正弦值。 tan(x) 计算 x 的正切值。 acos(x) 查找 x 的反余弦值。 asin(x) 查找 x 的反正弦值。 atan(x) ...
阅读 3 分钟
在 C++ 中,纯虚函数是在基类中声明的虚拟函数,并且必须在派生类中重写。函数声明以 = 0 结尾,这表明它不能在类主体中包含任何默认实现。...
阅读 8 分钟
在 C++ 编程语言中,类和对象是导致 C++ 面向对象编程的基础构建块。它们以更有条理、可重用和可维护的方式提供代码。在 C++ 中,类充当定义对象如何构造的蓝图...
11 分钟阅读
教程 编译器 程序 OOPs STL 面试题 C++ 中的 OOPs (面向对象编程) 概念 主要目的是 C++ 编程是为了将面向对象概念引入 C 编程语言。对象...
阅读 10 分钟
在 C++ 中,友元函数是一个非成员函数,它可以访问类的私有和保护成员。该函数使用 friend 关键字在类中声明为友元。如果我们想将一个函数声明为友元...
阅读 10 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India