关于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的用法(以本人理解)是基于程序更其易于理解,加强程序的可读性方面考虑的。
* 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的用法(以本人理解)是基于程序更其易于理解,加强程序的可读性方面考虑的。
相关文章推荐
- 关于转载“一种新的穿透防火墙的数据传输技术”的一点看法
- 转载CSDN上关于GOOGLE的一则评论,后面也有自己的一点小小的看法
- VC语法 enum { IDD = IDD_ABOUTBOX };分析
- 【转载】关于该不该上JAVA培训班的一点看法
- 关于BCB,VC的一点个人看法
- [转载]关于项目管理的一点体会
- 关于网站表现层和后台的一点思考--以及转载的三大WEB服务器(Apache ,Lighttpd,Nginx)对比分析
- 关于domReady事件的一点看法,domReady队列
- 关于STM32的ST官方的库的一点看法
- 关于 GDI+ 在 VC6, VS2005, VS2010 中应用的一点区别
- VC:CString 用法整理(转载)
- (转载)关于void *指针的一点心得....
- 新手上路_vc多线程例子,关于AfxBeginThread的用法
- 关于interrupt,interrupted,isInterrupted的一点看法。
- 关于软件可测试性的一点看法
- VC ++ 关于CreateProcess 打开网站以及文件的用法!
- 关于enum { IDD = IDD_ADD };的使用
- 关于javascript 以及 jQuery中获取文本值得一点看法
- 【酷熊科技】工作积累 ----------- Unity3D UITable协程加载问题 (转载 ---- 关于NGUI中UiTable和UIGrid脚本的一点感受)
- 关于C语言中的malloc和free函数的用法(转载