第五章 常量

5.1 为什么需要常量
【规则5-1-1】 尽量使用含义直观的常量来表示那些将在程序中多次出现的数字或
字符串。

5.2 const 与#define的比较
(1) const 常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安 全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会 产生意料不到的错误(边际效应)。
(2) 有些集成化的调试工具可以对const 常量进行调试,但是不能对宏常量进行调试。

【规则5-2-1】在 C++ 程序中只使用 const 常量而不使用宏常量,即 const 常量完全取代宏常量。

5.3 常量定义规则
【规则5-3-1】需要对外公开的常量放在头文件中,不需要对外公开的常量放在定义文件的头部。为便于管理,可以把不同模块的常量集中存放在一个公共的头文件中。

【规则5-3-2】如果某一常量与其它常量密切相关,应在定义中包含这种关系,而不应给出一些孤立的值。

5.4 类中的常量
不能再类声明中初始化const数据成员。因为类的对象未被创建时,编译器不知道SIZE的值是什么。const数据成员的初始化只能在类构造函数的初始化列表中进行。
建立在整个类中都恒定的常量应该用类中的枚举来实现。
枚举常量不会占用对象的存储空间,它们在编译时被全部求值。枚举常量的缺点是:它的隐含类型是整数,其最大值有限,并且不能表示浮点数。

你可能感兴趣的:(第五章 常量)