您的位置:首页 > 其它

关于VC中enum { IDD = IDD_ABOUTBOX }用法一点看法_lizhon...(转载)

2010-06-04 11:06 316 查看
*
* 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的用法(以本人理解)是基于程序更其易于理解,加强程序的可读性方面考虑的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: