【发布时间】:2012-07-10 11:37:37
【问题描述】:
我知道如果我这样定义一个枚举工作日:
enum weekday {
MON,
TUE,
WED,
THU,
FRI,
};
然后,MON 在内部默认为 0,TUE 为 1,WED 为 2...
但如果我这样定义:
enum weekday {
MON,
TUE = 0,
WED,
THU,
FRI,
};
那么MON 和TUE 的值都是0。
系统如何在内部区分 MON 和 TUE?我的意思是,如果我声明这样的内容:
enum weekday today = 0;
那么今天是MON 还是TUE?或者,从哲学上讲,两者兼而有之?
【问题讨论】:
-
@quasiverse - 我做到了,
MON和TUE都是0。 +1,我不知道。 -
enum常量是ints。它们只是希望对某些整数常量有意义的名称。那么,如果你可以用两个名字来指代同一个东西,那又有什么关系呢? -
没有哲学,只有逻辑:
today == MON == TUE == 0. -
对于不支持 constexpr 的系统,它基本上是 constexpr 的替代品。除了 constexpr 整数是耦合的