C/C++ enum class枚举类型

声明枚举类型的方式有2种:

1. 常见的enum方式

enum A {
	a0 = 0,
	a1 = 1
};

enum B {
	b0 = 0,
	b1 = 1
};

2. enum class 方式

enum class CC {
	cc0 = 0,
	cc1 = 1
};


enum和enum class的区别如下:

1. 使用方式

enum声明的枚举可以直接使用枚举值:

A a = a0;


但, enum class 必须使用类型来引用:

CC c = CC:cc0;


2.  是否可以隐式转换为int类型

enum方式声明的枚举类型可以隐式的转换为int类型,如:

	A a = a0;
	int i = a;

但 enum class方式声明的枚举类型就不能隐式转换为int类型,如:

	CC c = CC::cc0;
	int i = c;  // 编译报错: error C2440: “初始化”: 无法从“CC”转换为“int”



你可能感兴趣的:(☆,C/C++,C/C++基础)