C++是一种混合型的程序设计语言,支持面向过程与面向列象的程序设汁方法。《重点大学计算机专业系列教材:C++语言程序设计教程》分别介绍面向过程的c++基础、面向对象的c++语肓要素和应用c++开发的其他机制。面向过程部分总结C++面向过程的语法点,介绍数据类型、流程控制、函数、数组及指针,巩同基础知识的同时,对c++中引进的流、重载、引用、动态空间管理进行较为详尽的讲解。面向对象部分重点阐述面向对象思想,分析类、运算符重载、继承、多态和流等语法要素,通过浅显的例子解释知识点的意义与用法,对重点与难点语法采用大量的实例和图表来帮助理解,使读者能“知其然”,并能做到“知其所以然”。应用基础部分介绍应用c++编程的关键技术与高级机制,包括模板、STL、异常以及Windows编程,由于该部分涉及内容很多,采用向导式进行分析案例,使读者在简单应用中理解语法机制。本书注重案例设计的合理性,引导读者理解并应用面向对象程序设计的思想方法,从应用出发注重激发读者的学习兴趣。
《重点大学计算机专业系列教材:C++语言程序设计教程》特色: ●本着“理解与应用并重”的原则,强调案例设计的合理性,引导读者理解并应用面向对象程序设计的思想和方法,从应用出发培养学生的学习兴趣。 ●对重要的、难懂的知识点结合实用案例进行循序渐进地剖析,并引入大量简洁易懂的图表来帮助理解。 ●将基础知识与标准模板库等相结合,使学生懂得利用已有的模板库和算法,能够提高程序的开发效率和程序的可靠性,为实践研发打下基础。 ●引入Windows编程内容,采用向导式介绍,使学生能够了解Windows程序设计的思路和应用,进一步增强对面向对象程序设计的理解。
前言
C++语言是一种典型的面向对象的程序设计语言,学习C++程序设计语言既要掌握其语法规则,更要理解面向对象(ObjectOriented,OO)的程序设计思想。只有在理解OO思想的基础上运用这些语法才能编写出真正的C++程序,才能够为后续专业课程(如“数据结构”、“编译原理”、“操作系统”和“软件工程”等)的学习提供支持,从而为软件开发工作奠定扎实的基础。
在笔者多年教学实践过程中发现,学生对C++面向对象程序设计的学习往往偏重于基本语法,忽略理解和掌握面向对象的程序设计思想。主要表现是: 设计程序以完成基本功能为出发点,仍然采用结构化思想设计程序;尽管程序中定义了类,但没有体现封装、继承、多态的作用,构造的是基于对象而不是面向对象的程序。
C++是一个非常全面的程序设计语言,不仅具备面向对象的常规语言要素,如类、继承、多态、流、异常机制等,还包括诸多C++特有的语言要素,如多继承、复制构造、运算符重载、指针、引用、模板等。由于涉及的语法规则繁多且晦涩难懂,学生很难完全掌握,因此容易导致其畏难情绪。此外,C++教学往往与具体应用脱节,学习语法知识后学生不了解其应用方法,对应用程序开发无所适从。
基于以上问题,本书本着 “理解与应用并重”的原则,强调案例设计的合理性,引导读者理解并应用面向对象程序设计的思想和方法,从应用出发培养学生的学习兴趣。在讲解基本语法规则之前,先通过浅显的例子帮助读者理解该知识点的本质,正所谓“知其然更需知其所以然”,进而使读者能够合理地规划程序结构并运用知识点。对重要的、难懂的知识点采用实用案例进行循序渐进的剖析,并引入大量简洁易懂的图表来帮助理解。将基础知识与标准模板库等相结合,使学生懂得利用已有的模板库和算法,能够提高程序的开发效率和可靠性,为实际研发打下基础。同时,为了培养学生学习兴趣,引入Windows编程部分,采用向导式介绍,让学生能够了解Windows程序设计的思路和应用,进一步增强对面向对象程序设计的理解。
本书由大连理工大学软件学院软件基础教研室组织编写,在总结各位教师多年教学经验的基础上,倾注了C++教学团队教师大量的心血。其中,由蒋光远完成第1章、第2章、第3章的编写;田琳琳完成第4章、第9章以及附录的编写;赵小薇完成第5章、第6章、第8章的编写;于红完成第7章、第10章的编写。
这是一本主要面向研究型和教学型大学,针对计算机及相关专业的“C++程序设计语言”课程的教材,建议读者最好有一定的C语言程序设计基础。希望读者在学习C++语言语法的同时,能够真正理解和掌握面向对象程序设计的思想,并运用OO的分析与设计方法开发应用程序。
鉴于时间仓促,笔者水平有限,书中难免有纰漏,欢迎广大读者多提宝贵意见。
编者2011年12月于大连理工大学
第1章 概述
1.1 面向对象的由来
1.2 面向对象的思想
1.3 面向对象的特征
1.4 C++概述
1.5 C十十程序开发步骤
习题
第2章 c++基础
2.1 C++程序结构
2.2 基本数据类型及操作
2.2.1 字符集
2.2.2 标识符和关键字
2.2.3 运算符和表达式
2.2.4 数据类型
2.2.5 输入与输出
2.3 流程控制
2.3.1 分支结构
2.3.2 循环结构
2.3.3 几种循环语句比较
2.4 程序结构
2.4.1 函数定义
2.4.2 函数分类
2.4.3 函数调用和声明
2.4.4 形式参数与实际参数
2.4.5 函数返回值
2.4.6 函数重载
2.4.7 函数默认参数
2.4.8 函数递归调用
2.5 数据结构与数据访问
2.5.1 数组
2.5.2 指针
2.5.3 引用
2.5.4 动态空间管理
习题
第3章 类与对象
3.1 理解类
3.2 类的定义与实现
3.2.1 类的定义
3.2.2 类的实现
3.3 对象定义及访问
3.3.1 对象的定义
3.3.2 对象的访问
3.4 构造函数和析构函数
3.4.1 构造函数
3.4.2 析构函数
3.5 拷贝构造函数
3.5.1 浅拷贝与深拷贝
3.5.2 标记拷贝构造
3.5.3 函数参数与返回值
3.6 对象数组
3.7 this关键字
3.8 static成员
3.8.1 static数据成员
3.8.2 static函数成员
3.9 const成员和const对象
3.9.1 const数据成员
3.9.2 const函数成员
3.9.3 const对象
3.10 友元函数和友元类
3.10.1 友元函数
3.10.2 友元成员函数
3.10.3 友元类
3.11 类组合关系
3.12 案例分析
……
第4章 运算符重载
第5章 继承
第6章 多态
第7章 模板
第8章 异常处理
第9章 输入输出操作
第10章 Windows编程
附录A UML类图简介
附录B 预处理
附录C 命名空间
参考文献