前 言
C++编程惯用法——高级程序员常用方法和技巧
C++是一门规模庞大的编程语言。只了解C++规则的程序员就和只知道棋子如何移动的棋手一样(失败)。为了获得成功,还要学习一些相关的法则和策略。
本书所面对的读者是使用C++语言的初级及中级程序员们,他们一方面期待学到更多有关使用这门语言的知识,一方面又没有时间去参加一个大学学期那么长的一门课程。我们假设读者已经了解了一些C++的基础知识——如:什么是成员函数?如何使用public、private以及protected等。本书的读者没有必要是一个C++专家,在每次提及一些该语言中比较高级的话题(如多继承)时,我们都会给出一个“回顾”栏目对此进行简短的总结。我们关注的是那些被证明在实际中十分有效的策略。在本书中,我们将避免多谈理论,而尽量为读者给出例子及实用的建议。
我们尽量保证不偏离惯例。在本书中,没有一个想法或技术会超出语言的基础,它们大多来自于有着多年C++经验的程序员日常的实践中。很显然,最新的想法总是具有最大的风险。我们希望能够避免将C++的初级用户引导到那些想法上去。除了第10章之外[1],本书中所有的技术都经过了实践的证明。
我们也无意将读者变成C++专家。C++中也包含了一些阴暗的角落,我们会在书中将它们一一指出并教导读者如何避免它们。写出依赖于语言中定义含糊、意义微妙的规则的程序是不好的,即便作者本人清楚它的意义并保证它可以正确运行,下一个来维护这段代码的人也可能未必能够做到这点。比较好的做法是:坚持使用语言中那些被广泛使用及理解的部分来书写程序。
第1章 抽象
**1.1 有关电话号码的抽象模型
1.2 抽象模型间的关系
1.3 请考虑边界条件
1.4 使用CRC卡片来辅助设计
1.5 小结
1.6 问题**
第2章 类
**2.1 构造函数
2.2 赋值
2.3 公用数据
2.4 隐式类型转换
2.5 操作符重载:成员或非成员?
2.6 重载、缺省值以及省略符
2.7 Const
2.8 返回值为引用
2.9 静态对象的构造
2.10 小结
2.11 问题**