作为最流行的面向对象程序设计语言之一,C++既支持过程化程序设计,也支持面向对象程序设计。从操作系统、设备控制到数据库、网络、数字媒体等众多的系统软件和应用软件开发领域都能看到它的身影。
为了帮助读者更好地学习C++程序设计,本书作者结合多年的C++教学实践和软件开发经验,从零基础入手,全面、系统地介绍了C++语言的相关知识,并辅以大量的程序实例。
全书共13章,分别介绍了C++基础、基本数据类型与运算符、程序控制、函数、数组、指针与引用、自定义数据类型、类、运算符重载、继承与派生、虚函数与多态性、C++输入/输出流。本书具有如下特色:
(1)详略得当,主次分明
C++中包含的内容较多,由于篇幅所限不可能面面俱到,必须有所取舍。书中对于非重点或较复杂的内容略讲,如数组部分重点是一维和二维数组,三维以上数组只介绍概念。另外,对一些选讲的内容以“*”标注。
(2)讲解由浅入深,循序渐进
本书的编排采用循序渐进的方式,内容梯度从易到难,讲解由浅入深,适合各个层次的读者学习。
(3)写作细致,以读者为出发点
本书内容编排、概念表述、语法讲解、实例展示,以及源代码注释等都很细致,力图将问题讲解得清楚,尽量为读者扫清学习中的障碍。
(4)贯穿大量的典型实例和开发技巧
本书精选重点,强化主要概念,在讲解知识点时贯穿了大量的典型实例和开发技巧,以例题释含义,力求让读者获得真正实用的知识。
(5)配套资源丰富
为方便教学和自学,本书配套有《C++程序设计习题与上机指导》,以及教学PPT、例题源代码等,力求帮助读者通过具体实践掌握C++的编程方法。
本书阅读建议:
(1)建议没有基础的读者,从前向后顺次阅读,尽量不要跳跃。
(2)书中的实例和习题要亲自上机动手实践,学习效果更好。
(3)课后习题不仅要给出代码,最好能上机调试运行,以加强和巩固对知识点的理解和掌握。
本书由刘厚泉提出编写计划和结构安排,其中刘厚泉编写第1—2章,李政伟编写第3~4、7章,葛欣编写第5~6章、席景科编写第10~11章、薛猛编写第8~9章、徐东红编写第12~13章,最后由李政伟统稿。
本书的编写参考了大量的同类书籍。在此,我们向有关的作译者表示衷心的感谢。
由于C++程序设计涉及的内容非常丰富,限于编者水平有限,书中个别地方难免有疏漏,敬请读者批评指正。
编者
1.1.1程序设计语言是人机交互的重要介质
人们在使用计算机解决复杂问题时,需要通过程序表达意图和步骤,这通常包含两个阶段,第一个阶段是对问题进行分析和描述,明确做什么和怎么做;第二个阶段是使用程序设计语言编写程序,将解决问题的方法和步骤交由计算机执行。学好程序设计也包含两方面的内容,一方面要熟练掌握程序设计语言的使用方法,另一方面也要学会用计算机思维来分析和表达现实世界的问题。
1.1.2程序设计语言的发展概况
计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。
(1)机器语言
机器语言是第一代计算机语言。机器语言程序由一串串使用“O”和“l”编码的指令序列构成,计算机硬件可以直接理解这种二进制形式表示的指令,并完成相应的操作。机器语言依赖于特定型号的计算机硬件,具有很高的运行效率。虽然对机器来说理解和执行这种语言都十分简单,但是对程序员来说程序的编写、阅读和修改都很困难,而且由于每台计算机的指令系统各不相同,在一台计算机上执行的程序很难移植到另一台计算机上执行,因此加重了程序设计者的负担。
(2)汇编语言
汇编语言是第二代计算机语言。为了减轻使用机器语言编程的不便,人们尝试用一些简洁的英文符号来替代指令中特定的二进制串,比如用“ADD”表示加法,用“MOV”表示数据传递等。这种用英文和数字符号组成的语言称为汇编语言。与机器语言相比,汇编语言程序易于阅读和理解,方便了程序的编写和维护。计算机并不能直接理解汇编语言的指令,在程序运行之前,需要通过专门的程序将其翻译成二进制形式的机器语言程序,再交由机器执行。汇编语言也同样十分依赖于机器硬件,虽然移植性不好,但是程序精炼而质量高,所以至今仍在使用。
……