枚举类型未设定范围,相比于enum
时间: 2023-08-01 09:11:30 浏览: 91
class更加灵活,可以自定义枚举类型的值。而enum类型的值是固定的,无法修改。
在class中,我们可以使用常量或者静态变量来定义枚举类型,同时可以定义方法和属性来扩展枚举类型的功能。
例如,我们可以使用以下代码来定义一个月份的枚举类型:
```
public class Month {
public static final int JANUARY = 1;
public static final int FEBRUARY = 2;
public static final int MARCH = 3;
//...
public static final int DECEMBER = 12;
}
```
在使用时,可以直接调用Month类中定义的常量来表示月份。
而如果使用enum类型来定义月份,则需要使用以下代码:
```
public enum Month {
JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE,
JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
```
此时,Month枚举类型的值只能是JANUARY、FEBRUARY等12个月份中的一个,无法自定义。
相关问题
枚举类型未设定范围,相比于enum,要修改成“enum class”
是的,您是正确的。在C++中,枚举类型有两种:普通枚举和强类型枚举(也称为枚举类)。普通枚举中的枚举值是全局可见的,而枚举类中的枚举值是在枚举类的作用域内可见的。因此,使用枚举类可以避免名称冲突并提高代码的安全性。同时,枚举类还可以指定其底层类型,从而限制其值的范围。
要将普通枚举修改为枚举类,只需在enum关键字后添加class关键字即可,如下所示:
```
enum class Color { Red, Green, Blue };
```
这样定义的枚举类型Color中的枚举值只在Color作用域内可见,并且不会与其他命名空间中的枚举值冲突。如果需要指定底层类型,可以使用冒号(:)后跟类型名称的方式来定义,例如:
```
enum class Color : uint8_t { Red, Green, Blue };
```
这样定义的枚举类型Color中的枚举值的底层类型为uint8_t,可以避免超出范围的错误。
c语言 枚举类型enum用法
枚举类型是C语言中的一种特殊类型,它可以让我们定义一些具有固定取值范围的变量。枚举类型的定义格式为:enum 枚举类型名 { 枚举值1, 枚举值2, ... }; 其中,枚举值可以是整型常量、字符常量或字符串常量。枚举值默认从0开始自动编号,也可以手动指定枚举值的编号。以下是一个枚举类型的例子:
```c
enum weekday {Sun, Mon, Tue, Wed, Thu, Fri, Sat};
```
上面的代码定义了一个名为weekday的枚举类型,它包含了7个枚举值,分别为Sun、Mon、Tue、Wed、Thu、Fri和Sat。其中,Sun的枚举值为0,Mon的枚举值为1,以此类推。
枚举类型的使用方法如下:
```c
enum weekday today;
today = Wed;
printf("Today is %d\n", today);
```
上面的代码定义了一个名为today的枚举类型变量,将其赋值为Wed,然后输出today的值,输出结果为:3。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![md](https://img-home.csdnimg.cn/images/20210720083646.png)