例如:
enum Shape {circle,retangle};
auto circle = 10; // error
上述错误是因为两个circle在同一范围。...所以不管枚举名是否一样,里面的成员只要有一致的,就会出问题。例如:
enum A {a,b};
enum B {c,a};
a出现两次,在enum B的a处报错。...根据前面我们知道,enum名在范围方面没有什么作用,因此我们想到了namespace,如下例子:
// 在创建枚举时,将它们放在名称空间中,以便可以使用有意义的名称访问它们:
namespace EntityType...但是不断的使用命名空间,势必太繁琐,而且如果我不想使用namespace,要达到这样的效果,便会变得不安全,也没有约束。
因此在c++11后,引入enum class。...foo(EntityType entityType)
{
if (entityType == EntityType::Ground) {
/*code*/
}
}
这便是这一节要阐述的惯用法