枚举是我向来不太喜欢用的东西,几乎我见过的每本书都是这样介绍枚举的:
enum weekday {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};
我看到这里,总是想:多浪费啊,与其这样,还不如直接用0-6这些数呢。以后要写“weekday Today = Sunday;”,哪有“int Today = 0;”舒服。
本书似乎早看透了我的心理,于是,讲枚举不从枚举入手,偏从const常量入手:
引用:
const int input = 0;
const int output = 1;
const int append = 2;
虽然这种方法也能奏效,但是它有个明显的缺点:没有指出这些值是相关联的。枚举提供了一种替代方法,不但定义了整数常量集,而且还把它们聚集成组。
笔记:大师就是大师,他们写书能切中要害,让读者明白标准制定者的苦心。
另外,本书在这儿冷不丁地提了一个冷冰冰的概念:常量表达式。
引用:常量表达式是编译器在编译时就能够计算出结果的整型表达式。整型字面值常量是常表达式,……
笔记:让我先汗一个。常量表达式必需是整数?我怎么不知道?那“double pi = 3.14159;”后面的字面值不属于常量表达式吗?这是个疑问,先记下来。
引用:枚举类型的对象的初始化或赋值,只能通过其枚举成员或同一枚举类型的其它对象来进行。
笔记:这跟现实生活中的“做人要专一”有点相似,呵呵。简单地说,你选择了用名字来代替数值,那就得始终如一地使用名字,不可以用数值或其它表达式。比如“weekday Today = Sunday;”不可写成“weekday Today = 0;”,虽然Sunday就是0。
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!
