C++在几乎所有的计算环境中都非常普及,而且可以用于几乎所有的应用程序。C++从C中继承了过程化编程的高效性,并集成了面向对象编程的功能。C++在其标准库中提供了大量的功能。有许多商业C++库支持数量众多的操作系统环境和专业应用程序。但因为它的内容太多了,所以掌握C++并不十分容易。本书详述了C++语言的各个方面,包括数据类型、程序控制、函数、指针、调试、类、重载、继承、多态性、模板、异常和输入输出等内容。每一章都以前述内容为基础,每个关键点都用具体的示例进行详细的讲解。\r\n 本书基本不需要读者具备任何C++知识,书中包含了理解C++的所有必要知识,读者可以从头开始编写自己的C++程序。本书也适合于具备另一种语言编程经验但希望全面掌握C++语言的读者。
第1章 基本概念 \r\n 1.1 编程语言 \r\n 1.1.1 编程语言简史 \r\n 1.1.2 解释性程序和编译性程序的执行过程 \r\n 1.1.3 库 \r\n 1.2 C++是一种强大的语言 \r\n 1.3 一个简单的C++程序 \r\n 1.3.1 名称 \r\n 1.3.2 命名空间 \r\n 1.4 关键字 \r\n 1.5 C++语句和语句块 \r\n 1.6 程序结构 \r\n 1.7 从源文件中创建可执行文件 \r\n 1.7.1 编译 \r\n 1.7.2 链接 \r\n 1.8 C++源字符 \r\n 1.8.1 通用字符集 \r\n 1.8.2 三字符序列 \r\n 1.8.3 转义序列 \r\n 1.8.4 语句中的空白 \r\n 1.9 程序的注释 \r\n 1.10 标准库 \r\n 1.11 用C++编程 \r\n 1.12 本章小结 \r\n 1.13 练习 \r\n第2章 基本数据类型和计算 \r\n 2.1 数据和数据类型 \r\n 2.2 进行简单的计算 \r\n 2.2.1 字面量 \r\n 2.2.2 整型字面量 \r\n 2.2.3 整数的算术运算 \r\n 2.2.4 运算符的优先级和相关性 \r\n 2.3 使用变量 \r\n 2.4 整型变量 \r\n 2.4.1 整型变量类型 \r\n 2.4.2 整数的取值范围 \r\n 2.4.3 整型字面量的类型 \r\n 2.5 赋值运算符 \r\n 2.5.1 多次赋值 \r\n 2.5.2 修改变量的值 \r\n 2.6 整数的递增和递减 \r\n 2.7 const关键字 \r\n 2.8 整数的数字函数 \r\n 2.9 浮点数 \r\n 2.9.1 浮点数的数据类型 \r\n 2.9.2 浮点数的操作 \r\n 2.9.3 使用浮点数值 \r\n 2.9.4 数值函数 \r\n 2.10 使用字符 \r\n 2.10.1 字符字面量 \r\n 2.10.2 初始化char变量 \r\n 2.10.3 使用扩展字符集 \r\n 2.11 初始值的函数表示法 \r\n 2.12 本章小结 \r\n 2.13 练习 \r\n第3章 处理基本数据类型\r\n 3.1 混合的表达式\r\n 3.1.1 赋值和不同的类型\r\n 3.1.2 显式强制转换\r\n 3.1.3 老式的强制转换\r\n 3.2 确定类型\r\n 3.3 按位运算符\r\n 3.3.1 移位运算符\r\n 3.3.2 位模式下的逻辑运算\r\n 3.4 枚举数据类型\r\n 3.4.1 匿名枚举\r\n 3.4.2 在整型和枚举类型之间强制转换\r\n 3.5 数据类型的同义词\r\n 3.6 变量的生存期\r\n 3.6.1 自动变量\r\n 3.6.2 定位变量的声明\r\n 3.6.3 全局变量\r\n 3.6.4 静态变量\r\n 3.7 特殊的类型修饰符\r\n 3.8 声明外部变量\r\n 3.9 优先级和相关性\r\n 3.10 本章小结\r\n 3.11 练习 \r\n第4章 选择和决策 \r\n第5章 循环\r\n第6章 数组和字符串 \r\n第7章 指针\r\n第8章 使用函数编程\r\n第9章 函数 \r\n第10章 程序文件和预处理器\r\n第11章 创建自己的数据类型 \r\n第12章 类 \r\n第13章 类的操作\r\n第14章 运算符重载 \r\n第15章 继承 \r\n第16章 虚函数和多态性\r\n第17章 程序错误和异常处理 \r\n第18章 类模板 \r\n第19章 输入输出操作 \r\n第20章 标准模板库 \r\n附录A ASCII码 \r\n附录B C++关键字 \r\n附录C 标准库头文件\r\n附录D 运算符的优先级和相关性 \r\n附录E 理解二进制和十六进制数\r\n附录F 项目示例\r\n
C++自诞生以来,已成为使用最广泛的一种编程语言。C++从C中继承了过程化编程的高效性,集成了面向对象编程技术。C++还在其标准库中提供了大量的功能。它有着极大的灵活性、强大的功能和非常高的效率,常常用于专业应用程序的开发,由于其内容较多,掌握起来也不易。
本书是《C++入门经典》的第3版,采用的编写方法与前两版相同,第3版在第1、2两版基础上又做了修订和更新,包括示例,对于自学的学生来说也是理想的选择。
本书详细介绍了C++语言的各个方面,包括数据类型、程序控制、函数、指针、调试、类、重载、继承、多态性、异常和输入输出等内容。本书还深入讨论了类模板,包括标准模板库(STL,Standard Template Library)。每章都以前述内容为基础,每个关键点都通过具体的示例进行讲解。每章的最后都提供了练习题。
本书主要介绍标准的C++编程语言,涉及C++的语法、面向对象的功能和标准库等所有基本内容。通过本书可以获得编写C++应用程序的所有必要知识。
对于初学者来说,C++语言似乎比其他语言更难,但其功能和适用范围要远远超过其他编程语言。读者只要抱以正确的态度、具备编程的基本知识以及掌握C++的热情,在C++的学习和应用上就不会有太大的问题。学习本书,读者基本不需要具备任何编程语言的知识,只需了解基本的编程概念,就可以读懂本书,编写自己的C++程序,这也是学好C++的惟一方式。如果您了解像分支和循环这样的概念,那本书就非常适合您。
本书也适合于已有其他语言编程经验但希望全面掌握C++语言的读者。
作者Ivor Horton以善于教学而著称,他的C、C++等书都拥有大量忠实读者。
由于受时间和译者自身水平的限制,翻译过程中难免出现错误和疏漏,敬请读者多多批评指正,反馈信息请发至fwkbook@tup.tsinghua.edu.cn信箱。
译者
2005.7
Ivor Horton是世界著名的计算机图书作家,主要从事与编程相关的顾问及撰写工作,曾帮助无数程序员步入编程的殿堂。他曾在IBM工作多年,能使用多种语言进行编程(在多种机器上使用汇编语言和高级语言),设计和实现了实时闭环工业控制系统。Horton拥有丰富的教学经验(教学内容包括C、C++、FORTRAN、PL/1、APL等),同时还是机械、加工和电子CAD系统、机械CAM系统和DNC/CNC系统方面的专家。Ivor Horton还著有Beginning Visual C++6、Beginning C Programming和Beginning Java2 等多部入门级好书。
李予敏,男,计算机科学及应用专业博士,某研究院高级研究员,拥有丰富的C、C++编程经验,在核心期刊、国际国内会议上发表多篇文章,拥有著作3本、译著2本。
本书主要介绍标准的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++。
无封面