c++ enum 给定类型_C++ enum枚举类型详解

《enum枚举用法攻略》一节已经介绍过枚举数据类型,还记得吗?它们是由程序员定义的数据类型,由一组称为枚举量的值组成,枚举量代表整数常量。本节将进一步介绍枚举数据类型的应用,以及使用它们能做和不能做的事情。

在同一个语句中声明 enum 数据类型并定义变量

以下代码使用了两行来声明一个枚举数据类型,并定义了该类型的变量:

enum Car {PORSCHE, FERRARI, JAGUAR};

Car sportsCar;

但是,C++ 允许在同一个语句中声明一个枚举数据类型,并定义该类型的一个或多个变量。因此,上面的代码可以改写为如下形式:

enum Car {PORSCHE, FERRARI, JAGUAR} sportsCar;

以下语句不但声明了 Car 数据类型,而且定义了 2 个变量 myCar 和 yourCar:

enum Car {PORSCHE, FERRARI, JAGUAR} myCar, yourCar;

将整数赋值给 enum 变量

虽然枚举数据类型的枚举量在内存中是以整数形式存储的,但是,并不能直接将整数值赋给 enum 变量。例如,假设程序中包含以下声明:

enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY };

Day today;

现在可以编写以下赋值语句:

today = THURSDAY;

但是,正如前面已经介绍过的,以下语句是非法的。如果试图编译它,则会出现一个错误消息。

today = 3; //错误

在给 enum 变量赋值时,应该使用有效的枚举量。但是,如果某些情形要求必须将整数值存储在 enum 变量中,则可以通过强制转换的方式,将整数转换为 enum 数据类型,示例如下:

today = static_cast(3);

该语句的作用与以下语句是一样的:

today = THURSDAY;

将枚举量赋值给 int 变量

虽然不能直接将整数赋值给 enum 变量,但是,反过来却是可以的,即可以将枚举量赋值给整型变量。例如,

你可能感兴趣的:(c++,enum,给定类型)