C++之前的枚举的成员名字是全局可见的,下面的情况就会报错Book1和Book2都含有red,就会出现冲突,C++11枚举解决了这个问题:enum Book1{red = 1, blue = 2, green = 3, black = 4}; enum Book2{red = 1, yellow = 2};
强类型枚举不能和int类型直接转换,必须进行强转!enum class Book1{red = 1, blue = 2, green = 3, black = 4}; enum class Book2{red = 1, yellow = 2}; int main() { Book1 test = static_cast<Book1>(2); switch (test) { case Book1::red: std::cout << "red" << std::endl; break; case Book1::blue: std::cout << "blue" << std::endl; break; case Book1::green: std::cout << "green" << std::endl; break; case Book1::black: std::cout << "black" << std::endl; break; } return 0; }
C++11的强类型枚举
最新推荐文章于 2022-05-17 23:18:33 发布