译 序
C++ 是一门难学易用的语言!
C++ 的难学,不仅在其广博的语法、语法背后的语义、语义背后的深层思维、深层思维背后的对象模型;C++ 的难学,还在于它提供了4种不同(相辅相成)的编程思维模型:procedural-based,object-based,object-oriented,generic paradigm。
世上没有白吃的午餐。又要有效率,又要有弹性,又要前瞻望远,又要回溯相容,又要能治大国,又要能烹小鲜,学习起来当然就不可能太简单。
在如此庞大复杂的机制下,万千使用者前赴后继的动力是:一旦学成,妙用无穷。
C++ 相关书籍之多,车载斗量,如天上繁星,如过江之鲫。广博如四库全书者有之(The C++ Programming Language、C++ Primer),深奥如重山复水者有之(The Annotated C++ Reference Manual, Inside the C++ Object Model),细说历史者有之(The Design and Evolution of C++, Ruminations on C++),独沽一味者有之(Polymorphism in C++, Genericity in C++),独树一帜者有之(Design Patterns, Large Scale C++ Software Design, C++ FAQs),程序库大全有之(The C++ Standard Library),另辟蹊径者有之(Generic Programming and the STL),工程经验之累积亦有之(Effective C++, More Effective C++, Exceptional C++)。
这其中,“工程经验之累积”对已具 C++ 相当基础的程序员而言,有着致命的吸引力与立竿见影的帮助。Scott Meyers 的Effective C++ 和 More Effective C++ 是此类佼佼,Herb Sutter 的 Exceptional C++ 则是后起之秀。
这类书籍的一个共同特色是轻薄短小,并且高密度地纳入作者浸淫于 C++/OOP 领域多年而广泛的经验。它们不但开扩读者的视野,也为读者提供各种 C++/OOP 常见问题或易犯错误的解决模型。某些小范围主题诸如“在base classes 中使用 virtual destructor”、“令operator= 传回 *this 的 reference”,可能在百科型 C++ 语言书籍中亦曾概略提过,但此类书籍以深度探索的方式,让我们了解问题背后的成因、最佳的解法,以及其他可能的牵扯。至于大范围主题,例如smart pointers,reference counting,proxy classes,double dispatching,基本上已属design patterns的层级!
这些都是经验的累积和心血的结晶!
我很高兴将以下两本优秀书籍,规划为一个系列,以郑重的形式呈现给您:
1. Effective C++ 2/e, by Scott Meyers, AW 1998
2. More Effective C++, by Scott Meyers, AW 1996
本书不但与英文版页页对译,保留索引,并加上译注、交叉索引 、读者服务 。
这套书将对于您的程序设计生涯带来重大帮助。翻译这套书籍的过程中,我感觉来自技术体会上的极大快乐。我祈盼(并相信)您在阅读此书时拥有同样的心情。
相关推荐
### C++:一门难学易用的语言 #### 一、C++的学习难点 C++作为一门功能强大且灵活的语言,在其复杂性和学习曲线方面颇具挑战性。根据侯捷先生的观点,C++之所以难以掌握,主要体现在以下几个方面: 1. **语法的...
“C++是一门面向对象的语言”3. “为了软件可靠性,你需要垃圾回收”4. “为了效率,你必须编写底层代码”5. “C++只适用于大型、复杂的程序”关于第一个误解的阐述可以回答提出的问题:误解1:“要理解C++,你必须...
C++作为一门高级语言,它的设计理念是“一次编写,到处运行”。它不仅提供了丰富的控制结构,如循环和条件语句,还引入了类和对象的概念,实现了数据封装、继承和多态,这使得C++在构建复杂系统时具有极高的灵活性和...
C++语言作为一门功能强大且复杂的编程语言,在程序设计、系统编程等领域有着广泛的应用。通过这份C++语言参考文档的概述,我们可以了解到C++语言的基础知识、语法结构、特性以及现代C++的发展情况。 首先,C++语言...
C++作为一门面向对象的编程语言,其核心概念包括: 1. 类与对象:C++中的类是对象的蓝图,对象是类的实例。通过封装数据和操作,实现了数据隐藏和模块化设计。 2. 继承与多态:继承允许创建新的类,这些类可以扩展或...
在编程世界中,掌握一门语言是每个程序员职业生涯的基石。无论是C、C++、Java还是C#,每种语言都有其独特的特性和应用场景。这里,我们将深入探讨如何有效地学习和掌握这些编程语言。 首先,理解基础是至关重要的。...
C++是一门强大的、灵活的编程语言,它允许程序员进行低级别的控制,同时也支持高级别的抽象。在《C++程序设计语言》中,Stroustrup强调了编写清晰、高效且可维护代码的重要性,教导读者如何利用C++的特性来实现这一...
总之,C++是一门强大的编程语言,不仅适用于系统级编程,也常用于游戏开发、图形界面应用、金融服务等领域。学习C++需要理解其核心概念,熟练运用面向对象编程,并不断跟进最新的语言标准和最佳实践。
C++是一门强大的编程语言,尤其适合开发大型和复杂的应用程序。C++Builder是由Borland公司开发的一款集成开发环境(IDE),专为C++语言提供了一整套完善的功能,帮助开发者更高效地进行编程。 首先,C++Builder提供...
C++作为一门强大的面向对象编程语言,是软件开发领域不可或缺的工具,尤其在系统编程、游戏开发、高性能计算等领域有着广泛的应用。 C++语言的特点在于它的灵活性和效率,它既支持过程化编程,又提供了面向对象的...
在编程的世界里,C++是一门重要的基础语言,对于初学者或是希望引导孩子们接触编程的人来说,选择合适的工具至关重要。"啊哈C语言ahaC-C++3.0.zip"就是这样一个专为初学者设计的C++学习工具包,它包含啊哈C++3.0...
作为一门现代的系统级编程语言,C++是许多软件开发领域的基础,包括操作系统、游戏引擎、金融服务软件以及高性能计算。这个压缩包文件包含了一些经典的C++学习资料,对于想要深入理解或学习C++的人来说,是非常宝贵...
【C++语言程序设计教程】是针对初学者和进阶者的一门教程,旨在教授如何使用C++这一强大且广泛使用的编程语言进行程序设计。C++是一种中级语言,结合了低级语言的效率和高级语言的易用性,是许多操作系统、游戏、...
1. **C++语言特性**:C++作为一门强大的系统级编程语言,因其高效、灵活和类型安全而常用于密码学库的开发。它允许程序员直接操作内存,实现底层优化,这对于处理加密算法的性能至关重要。 2. **加密算法**:C++...
除了作为一门编程语言本身,C++还在以下几个方面产生了深远的影响: - **程序设计方法论**:C++推动了面向对象编程思想的普及和发展。 - **软件工程实践**:C++的大规模应用促进了软件设计模式和最佳实践的研究与...
在C++的学习旅程中,构建一个完整的...最后,保持耐心和持续学习的态度,C++是一门深度和广度都很大的语言,需要时间去不断探索和精进。随着经验的增长,你会发现C++不仅可以提供高效的解决方案,还能带来编程的乐趣。