作用域内枚举(C++11)

版权声明:转载请注明出处 https://blog.csdn.net/weixin_40501169/article/details/88575745

在看源码时看到一个

eunm class writeControl
{
   timeStep,
   runTime,
   adjustableRunTime,
   clockTime,
   cpuTime
};

查了一下是11标准的新的枚举,其枚举量的作用域为类。

传统的两个枚举定义中的枚举量可能发生冲突。

如下

enum egg{small,big};
enum bread{small,big};

以上不能通过编译。可以如下

enum class egg{small,big};
enum class bread{small,big};

也可以使用关键字struct代替class,无论使用哪种方式,都需要使用枚举型来限定枚举量

egg choice = egg::small;
bread choice_ = bread_::small;

枚举量的作用域为类后,不同枚举定义的枚举量就不会发生名称冲突了。

这里枚举类的概念区别于java中的枚举类。。。(可能只有我自己经常搞混吧

java中的枚举类是表明我这个类就一下几种可能的对象

猜你喜欢

转载自blog.csdn.net/weixin_40501169/article/details/88575745
今日推荐