内容简介 本书揭示了C++程序员创建世界级软件的奥秘。程序设计大师Herbert Schildt通过将C++语言广泛应用于功能强大的编程任务中,全面展示了C++语言的多功能性,敏捷性,和艺术性。本书内容包括探索C++的功能,创建内存管理的垃圾回收器子系统,开发线程控制面板,建立译码器以扩展C++的功能,开发可断点续传的Internet文件下载工具,创建财务分析库,用基于AI的搜索技术探索人工智能,建立定制的STL容器,以及开发Mini C++解释程序。书中所有示例和项目的源代码都可以从上免费下载。
前 言 从早期的FORTRAN语言开始,计算机语言就一直不断地发展演变。在此过程中,消除了不稳固的特性,取而代之的是一些功能强大的特性。多年过去后,这些进化的努力被精练为一种纯粹的形式,那就是程序设计语言应该具有的纯净本质。这么多年努力的结果就是C++语言的产生,在程序设计历史上,任何其他语言都没有像C++语言拥有如此重要的地位。 C++的成功取决于许多原因。语法简洁而优雅;对象模型简明流畅,容易理解;C++中提供了精心编写的库。然而,并非是这些特性为C++赢得历史上的重要地位,而是C++给予程序设计人员的强大的功能。从来没有其他的语言能够使得程序设计人员更加直接地控制计算机。通过使用C++,程序设计人员就是机器的主人—— 这正是所有的程序设计人员所需要的。 没有边界,没有限制,没有约束。这就是C++语言。 0.1 本书内容 本书不同于大多数其他的C++书籍。其他的C++书籍讲授语言的基础,而本书展示了如何应用C++在更大的范围内完成有趣的、有用的、甚至是神秘的程序设计任务。在此过程中充分显示了C++语言的强大功能和优雅性。 大致来说,本书包含两类应用程序,第一类称为“纯代码”,因为它们注重于扩展C++程序设计环境本身。第2章的垃圾回收器,第3章的线程控制面板以及第8章的定制STL容器都是这种类型的示例。第二类应用程序显示了如何应用C++来完成各种计算任务。例如,第5章开发了一个可以断点续传的网络下载工具,第6章给出了一个如何建立财务应用程序的范例,第8章中应用C++实现了人工智能应用。 本书以一段独特有趣的代码结束:Mini C++解释程序,这个程序可以解释C++的一个小子集。Mini C++解释程序揭示了C++的关键字和语法是如何一起工作从而组成这门语言的语法的。更重要的是,这可以使您了解这门语言的内部机制,并且显示了隐藏在C++设计背后的一些原因。使用Mini C++解释程序不仅有趣,它还可以用作开发您自己的语言的起点,还可以用作其他语言的解释程序。 本书每一章都提供了可以直接使用的代码。例如,第2章的垃圾回收器可以适用于许多程序设计任务。然而,只有把这些应用程序作为自己的开发起点,才会获益匪浅。例如,可以进一步完善第8章的Internet文件下载工具,使其可以在某个指定的时间开始下载,或者可以监控一个下载站点,保持下载最新的文件。总之,可以将这些不同的程序和子系统作为您开发自己项目的跳板。 0.2 预备知识 本书假定读者具有坚实的C++语言基础知识。读者应该能够创建、编译并运行C++程序。应该能够使用指针、模板以及异常处理,理解复制构造函数并且熟悉标准库的常用部分。因此,本书假定读者具有可以从C++教程中获得的技巧。 如果读者需要复习或者加强基础知识,作者推荐下面几本书。 C++ From the Ground Up C++: A Beginner s Guide C++: The Complete Reference 这3本书都是McGraw-Hill/Osborne出版社发行的。其中C++: A Beginner s Guide一书的第1版和第2版已经由清华大学出版社出版发行,书名为《C++基础教程》和《C++基础教程(第2版)》。 0.3 源代码 本书所有的示例和项目的源代码都可以从网站上免费下载。