第五章 常量

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数据成员的初始化只能在类构造函数的初始化列表中进行。
建立在整个类中都恒定的常量应该用类中的枚举来实现。
枚举常量不会占用对象的存储空间,它们在编译时被全部求值。枚举常量的缺点是:它的隐含类型是整数,其最大值有限,并且不能表示浮点数。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,739评论 1 51
  • 第一周的作业珊珊来迟。 第一张雪人的。感觉大雪花还是没画好,细细的毛笔没有想象中好驾驭。 圆是手工画的,感觉还不错...
    安静的加百利阅读 212评论 1 1
  • 35岁 你因为身体越来越差 加班越来越少 晋升的速度也越来越缓慢 那天下班,媳妇告诉你 孩子要上幼儿园了 双语的一...
    富贵闲人123阅读 295评论 0 1

友情链接更多精彩内容