前〓言
自程序设计语言诞生以来的数十年间,已涌现出上千种不同的程序设计语言,然而,历经时间的考验,仅有几十种语言得以广泛流传与应用,其中C++语言占据着重要的地位。C++语言源自C语言,并在此基础上融入了面向对象的思想,极大地推动了程序设计向更加模块化、易于管理与维护的方向发展。C++语言的核心优势在于其对C语言的全面兼容,以及对面向对象编程方法的支持,这些特性使得C++语言既能够胜任系统软件的编写任务,又适合应用于应用软件的开发领域,且能够确保程序的高效运行。
本书是在课程思政和创新能力培养的大背景下,面向零基础的读者编写的C++程序设计课程教材。其主要特点如下:
(1) 注重基础,脉络清晰,可读性强。本书从程序设计语言的概念入手,按照C++语言的基本语法、程序控制结构、函数、数组/指针/引用、位运算与结构、类与对象、运算符重载、继承与派生、多态性、模板、文件和异常处理的顺序,由浅入深、循序渐进地介绍C++语言的基础知识。
(2) 模块划分合理,先“过程”后“对象”,逻辑性强。本书前6章主要介绍C++面向过程的程序设计基础知识且绝大部分内容与C语言兼容,从第7章开始介绍C++面向对象编程的概念和技术。阅读本书,读者既可以培养面向过程编程的程序设计思维,又可以构建面向对象编程的程序设计理念。
(3) 案例丰富,实用性强。全书各主要知识点都有案例作为支撑进行讲解,另外,各章最后都安排了“应用举例”一节,对本章的内容予以综合运用,帮助读者将零散的知识点串联起来,提升解决实际问题的能力。
(4) 竞教结合,创新性强。本书各章的课后编程题都是按照ACM国际大学生程序设计竞赛(ACM/ICPC)的格式编排,附录C给出了竞赛所使用的在线评测系统简介,利于将竞赛机制融合到课程实验和课后编程中,培养学生的竞争意识、创新能力和动手能力。
(5) 课程思政,导向性强。将思政元素融入教学内容和教学案例,潜移默化地培养学生的文化自信、家国情怀和工匠精神,以回答“培养什么人,为谁培养人”的问题,利于培养社会主义建设者和接班人。
本书第1~3章由徐红云执笔,第4~6章由李方执笔,第7~10章由沃焱执笔,第11~13章由郑运平执笔。全书由徐红云担任主编,完成全书的修改和统稿。本书的出版得到了华南理工大学教务处、计算机学院的鼎力支持,同时也得到了清华大学出版社的诸多帮助,在此表示衷心的感谢。
本书是2020年广东省高等教育教学改革项目“基于创新能力和计算思维能力培养的程序设计类课程教学改革研究”的研究成果之一。本书的出版得到了华南理工大学2024年度本科精品教材专项建设项目资助。
鉴于编者水平所限,书中难免存在不足之处,恳请广大同行与读者批评指正。
编者
2025年5月于广州