枚举类型enum

枚举类型enum

枚举类型

  1. 限定作用域enum class mode{intput,output,append};
  • 枚举成员在枚举类型作用域外不可访问
  1. 不限定作用域enum mode{intput,output,append};
  • 枚举成员与枚举类型本身作用域相同

枚举成员是const

初始化枚举必须使用枚举成员或者该类型的另一个对象,不能使用int等

1
2
mode om = 2;//错误,2不是mode的枚举成员
om = mode::input ;//正确

enum是由某种整数类型表示的,默认是int。可以在名字后面使用冒号确定enum使用的类型

1
2
enum mode : unsigned long long{a=10000,b=30000,c=30000};
//b和c的值可以相同

前置声明

1
2
enum mode:unsigned long long;//不限定作用域的,必须制定成员类型
enum class mode ;//限定作用域的,直接默认int

形参匹配

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
enum mode{input,output,append};
void fun(mode);
void fun(int);

int main()
{
mode m = input;
fun(128);//匹配fun(int)
fun(input);//匹配fun(mode)
fun(m);//匹配fun(mode)
}
//不能直接将整形传递给enum形参
//但是可以将不限定作用域的枚举类型或成员传给int形参
void method(unsigned char);
void method(int);
unsigned char uc = input;
method(input);//调用method(int)
method(uc);//调用method(usigned char)
作者

步步为营

发布于

2024-05-08

更新于

2025-03-15

许可协议