* * 7位粉丝 * 1楼 VC++基于对话框的程序中,在基于CDialog类的类头文件中,在类的成员变量声明部分,总会有类似 enum { IDD = IDD_AAAAA }的声明, 作用: enum在这里的作用就是相当于类里面定义的常量,此常量用来唯一标识此对话框类对应的对话框,也就是此对话框的ID号. 疑问: 为什么要采用如此常量的定义方式,而不是其它关键字呢?比如const? 解惑: 首先我们应该对enum这种枚举型的优点,或其存在的意义有所了解才能真正弄清此问题, 枚举类型: C语言或C++的一种构造类型,它用于声明一组命名的常数。 (1)枚举的声明:枚举声明用于声明新的枚举类型。 访问修辞符 enum 枚举名:基础类型 { 枚举成员 } 基础类型必须能够表示该枚举中定义的所有枚举数值。枚举声明可以显式地声明 byte、sbyte、short、ushort、int、uint、long 或 ulong 类型作为对应的基础类型。没有显式地声明基础类型的枚举声明意味着所对应的基础类型是 int。 (2)枚举成员 枚举成员是该枚举类型的命名常数。任意两个枚举成员不能具有相同的名称。每个枚举成员均具有相关联的常数值。此值的类型就是枚举的基础类型。每个枚举成员的常数值必须在该枚举的基础类型的范围之内。 示例: public enum TimeofDay:uint { Morning=-3, Afternoon=-2, Evening=-1 } 产生编译时错误,原因是常数值 -1、-2 和 –3 不在基础整型 uint 的范围内。 枚举类型的优点: 1.它将使程序更容易编写,阅读和维护 2.它是强类型的,不能将一个枚举做为另一个枚举值来使用 3枚举类型定义的符号是常量值,编译器一旦发现代码引用了一个枚举型的符号,在编译时就会用数值替换该符号 4.直观,易于理解,加强可读性 性别、月份、星期几、颜色、单位名、学历、职业等,都不是数值数据...如果用一个数值来代表某一状态,这种处理方法不直观,易读性差...如果能在程序中用自然语言中有相应含义的单词来代表某一状态,则程序就很容易阅读和理解...也就是说,事先考虑到某一变量可能取的值,尽量用自然语言中含义清楚的单词来表示它的每一个值,这种方法称为枚举方法,用这种方法定义的类型称枚举类型。 结论: 关于VC中使用 enum { IDD = IDD_ABOUTBOX }来声明对话框ID的用法(以本人理解)是基于程序更其易于理解,加强程序的可读性方面考虑的。
关于VC中enum { IDD = IDD_ABOUTBOX }用法一点看法_lizhon...(转载)
最新推荐文章于 2021-05-19 22:26:13 发布