c++ 如何定义枚举型
时间: 2023-07-19 21:49:02 浏览: 54
在 C++ 中,可以通过关键字 `enum` 来定义枚举类型。枚举类型可以看作是一组常量的集合,这些常量被分配了一个整数值。
枚举类型的定义格式如下:
```c++
enum 枚举类型名 {
枚举值1,
枚举值2,
...
};
```
例如,定义一个表示颜色的枚举类型 Color:
```c++
enum Color {
Red,
Green,
Blue
};
```
在上面的定义中,Red 的值为 0,Green 的值为 1,Blue 的值为 2。如果需要指定枚举值的具体数值,可以在枚举值后面加上等号和数值,例如:
```c++
enum Color {
Red = 1,
Green = 2,
Blue = 4
};
```
在上面的定义中,Red 的值为 1,Green 的值为 2,Blue 的值为 4。
枚举类型中的常量可以直接使用枚举类型名加上常量名来访问,例如:
```c++
Color c = Red;
```
在上面的代码中,将枚举类型 Color 中的 Red 赋值给变量 c。
相关问题
C++ 枚举 字符串
在 C++ 中,枚举(enum)是一种用户定义的数据类型,它可以将一组常量定义为一个命名的列表。枚举常量默认情况下是整数值,但可以使用类型强制转换将其转换为其他类型,例如字符型或字符串型。
如果你想要将一个枚举常量转换为字符串,可以使用一些技巧。一种常见的方法是使用一个数组来存储枚举常量的字符串表示,然后使用枚举常量的值作为数组的索引来获取相应的字符串。
以下是一个示例代码,其中定义了一个颜色枚举和一个字符串数组来存储颜色的字符串表示:
```
#include <iostream>
#include <string>
using namespace std;
enum Color { RED, GREEN, BLUE };
string colorToString(Color c) {
static const char* colorNames[] = { "RED", "GREEN", "BLUE" };
return colorNames[c];
}
int main() {
Color c = GREEN;
string colorStr = colorToString(c);
cout << colorStr << endl;
return 0;
}
```
输出结果为:
```
GREEN
```
在上面的代码中,colorToString() 函数使用了一个静态的字符指针数组 colorNames 来存储颜色的字符串表示。然后,该函数使用枚举常量的值作为数组的索引来获取相应的字符串。最后,该函数返回该字符串。
值得注意的是,上述方法是一种基本方法,也可以使用其他高级方法,例如使用 C++11 中的枚举类(enum class)和相关的字符串流操作符重载来实现相同的功能。
枚举类型enum用法
枚举类型(enum)是一种用户自定义的数据类型,用于定义一组具有离散值的常量,例如星期几、月份、性别等等。枚举类型可以提高代码的可读性和可维护性,因为使用枚举类型可以避免硬编码(hard-coding)。
枚举类型的用法如下:
```c++
enum 枚举名 {
枚举值1,
枚举值2,
...
};
```
其中,枚举名是用户定义的标识符,枚举值是枚举类型的常量,可以是整型、字符型、浮点型等常量。枚举值可以显式指定其值,也可以不指定,不指定时默认值从0开始递增。
例如,以下是定义一个星期几枚举类型的例子:
```c++
enum Weekday {
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
};
```
在程序中,可以通过枚举名加上枚举值的方式来访问枚举类型的常量,例如:
```c++
Weekday today = Wednesday;
if (today == Wednesday) {
std::cout << "Today is Wednesday." << std::endl;
}
```
输出结果为:Today is Wednesday.