前 言
本书主要介绍标准的C++编程语言,涉及C++的语法、面向对象的功能和标准库等所有基本内容。阅读本书将获得编写C++应用程序的所有必要知识。
为什么要学习C++
C++自问世以来,已成为应用最广泛的一种编程语言。C++由于其极高的灵活性、强大的功能和非常高的效率,常常用于专业应用程序的开发,C++非常适合于编写各种编程环境下的高性能代码。
它要比许多人想像的更容易理解。只要有正确的引导,掌握C++编程语言是比较容易的。开发C++技巧,学习许多人已在使用的语言,在自己的编程工具箱中就会多一种功能强大的新工具。
C++的标准
1998年,C++的国际化标准ISO/IEC 14882最终定稿,并被美国国家标准协会ANSI和信息技术标准国际协会INCITS采纳。这是ANSI/ISO小组9年工作的成果,其目的是为C++编程语言开发一种世界标准。尽管编写本书时1998年的标准仍在使用,但改进该语言的工作一直在进行,因此将来C++一定会添加新特性。
C++的1998标准为编译器的编写人员提供了一幅蓝图,所以,目前许多(但不是全部)编译器都遵循该标准。如果使用遵循该标准的编译器,代码的可移植性将非常高,将来,还可以避免非标准语言元素带来的麻烦。
当然,C++的标准定义为开发在任何硬件或操作系统环境下运行的编译器的参考框架。另外,它还将试图在任何开发环境下尽可能地提高性能。也就是说,编译器编写人员在许多领域都有非常大的灵活性,以包容机器体系之间的差异。例如,该标准定义了数字数据和算术操作,这样编译器编写人员就可以充分利用各种机器的不同特性,优化执行性能。编译器编写人员还可以选择用于定义C++程序的字符编码。这样,就可以包容默认字符编码在不同操作系统上的变化。没有这种灵活性,在某些机器上该标准就会有一定的局限性,导致性能较差,这非常不利于一般目的的编程语言。
本书将指出机器之间重要的、潜在的不同。但是,这需要一个实际有效的环境来显示本书中各个例子的输出。因此,所有的例子都在一台安装了Intel处理器体系结构的PC上运行。
错误和更正
作者和Apress的编辑们已经尽最大努力确保本书中的文本和代码没有错误,但是错误仍然在所难免。如果您发现本书存在错误,请进入Apress网站的下述Web页面:
http://www.apress.com/book/download.html
如果在这个页面的列表中选择本书的书名,就可以下载勘误表和本书所有例子的代码,还可以记录下您找到的其他错误。下载的代码也包含所有练习的答案,但读者最好在完成了练习后再看答案。
使用本书
要通过本书学习C++,需要一个与ANSI/ISO兼容的编译器和一个适合于编写程序代码的文本编辑器。目前,大多数专业C++开发环境所附带的编译器都遵循这个标准,但在购买之前最好检查一下。另外,Internet上的一些免费软件和开放源代码的C++编译器也遵循C++标准。可以使用其中一个编译器和免费的程序文本编辑器,建立起一个经济、可行的学习环境。
本书的内容循序渐进,所以读者应从头开始一直阅读到最后。但是,没有人能仅从一本书中获得所有的编程技巧。本书仅介绍了如何使用C++编程,读者应自己输入所有的例子,而不是从下载文件中复制它们。再编译和执行输入的代码,这似乎很麻烦,但输入C++语句可以帮助理解C++,特别是觉得某些地方很难掌握时,自己输入代码就显得非常有帮助。如果例子不工作,不要直接从书中查找原因,而应在自己输入的例子代码中找原因,这是编写C++代码时必须做的一个工作。
犯错误也是学习过程中不可避免的,练习应提供大量犯错误的机会,犯的错误越多,对C++的功能和错误的原因认识得就越深刻。读者应完成所有的练习,记住不要看答案,直到肯定不能自己解决问题为止。许多练习都涉及某章内容的一个直接应用,换言之,它们仅是一种实践,但也有一些练习需要多动脑子,甚至需要一点灵感。
希望每个人都能成功驾驭C++。
