C++ 11起引入的 enum class相对于传统的enum有了很多变化,主要是针对传统 enum 在编程过程中出现的值类型名称作用域、enum类型安全问题进行了改良. 一、传统enum类型 先来看看传统enum在编程过程中可能遇到的一些问题: 1、两个 enum 类型声明时不能有相同值名称声明: #include using namespace std; int main() { // Defining enum1 Gender enum Gender { Male, Female }; // Defining enum2 Gender2 with same v