第5章:常量
常量是一种标识符,它的值在运行期间恒定不变,在C语言里用#define定义(称为宏常量),在C++里除了#define以外还有const来定义(称为conse常量)
尽量使用含义直观的常量来表示哪些在程序中多次出现的数字或字符串
一、const与#define比较
1、const常量有数据类型,宏常量没有数据类型
(即:编译器可以对const常量进行安全类型检查,而宏常量不行,只能进行字符替换)
2、有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。
3、在C++程序中最好只使用const不使用#define
二、常量定义规则
1、需要对外公开的常量放在头文件中,
不需要对外公开的常量放在定义文件的头部。
(为了便于管理,可以把不同模块的常量集中存放在一个公共的文件夹中。)
2、如果某一常量与其他常量密切相关,应在定义中包含这种关系
三、类中的常量
1、const数据成员只是在某个对象的生存周期内是常量,而对于整个类而言却是可变的
2、不能在类声明中初始化const数据成员,只能在类构造函数的初始化列表中进行
3、可以用枚举类型来建立整个类的恒定常量
(枚举类型不会占用对象的存储空间、它们在编译时全部求值,其缺点是:其隐含的数据类型是整数,最大值有限且不能表示浮点数)
注:宏是在预处理阶段进行,const是在编译阶段处理。