August 2021
Intermediate to advanced
450 pages
5h 35m
Chinese
除了类之外,C++还提供了一种形式简单的用户自定义类型,可以用来枚举一系列值:
注意,枚举值(如red)位于其enum class的作用域之内,因此我们可以在不同的enum class中重复使用这些枚举值而不致引起混淆。例如,Color::red是指Color的red,它与Traffic_light::red显然不同。
枚举类型常用于描述规模较小的整数值集合。通过使用有指代意义的(且易于记忆的)枚举值名字,可以提高代码的可读性,降低出错的风险。
enum后面的class关键字指明了枚举是强类型的,且它的枚举值位于指定的作用域中。不同的enum class是不同的类型,这有助于防止对常量的意外误用。例如,我们不能混用Traffic_light和Color的值:
同样,我们也不能隐式地混用Color和整数值:
捕捉试图向枚举类型的转换是避免错误的一种好的防御措施,但我们常常希望用枚举类型的基础类型(默认是int)的值对其初始化,这就要允许从基础类型隐式转换为枚举类型:
Read now
Unlock full access