《面向对象C++程序设计/普通高等教育“十一五”国家级规划教材·计算机系列教材》介绍面向对象的基本概念,阐述面向对象程序设计的思想和方法,将面向对象思想渗透到每个章节。
《面向对象C++程序设计/普通高等教育“十一五”国家级规划教材·计算机系列教材》共10章,主要内容包括绪论、数据类型与程序控制流程、函数、数组与指针、类与对象、继承、多态、输入输出流和异常处理,最后一章为综合设计,用以培养综合应用C++的能力。
本书例题丰富,并有运行结果,每章后附有习题,供读者巩固提高所学知识。
本书可作为高等院校面向对象程序设计教材,也可供程序爱好者学习参考。
面向对象程序设计语言已成为当今流行的程序设计语言,C++语言是典型的面向对象程序设计语言之一,在全世界都得到了广泛的应用。
C++语言是从C语言发展而来的具有面向对象特征的程序设计语言。面向对象技术的基本思想是封装、信息隐藏、继承与多态。本书在系统阐述C++语言的过程中,将这些思想融入其中,使读者能够领悟面向对象思想的真谛。本书既注重语法的讲授,强调逻辑严谨性,又注重实际应用,通过丰富的例题提高读者的应用能力。
1. 本书特点
1) 既注重语言语法,又注重语言应用
本书作者针对多年教学中学生的学习难点和易犯错误,由浅入深地阐述了C++语法规则和设计技术,既有相当简单的语法教学示例,也有实际背景的应用案例,循序渐进地将面向对象和软件工程思想渗透到语言学习中。为提高读者综合应用所学知识解决实际问题的能力,专门编写了综合设计一章,将本书所涉及的面向对象的封装、信息隐藏、继承、多态和软件工程思想融入一体,通过模拟几个实际应用的实例,以提高读者全面运用所学知识的能力。
2) 摒弃灌输式讲述,启发读者思维
为了引发读者发散思维,摆脱灌输式教学,本书从正反两方面阐述面向对象的技术特点,在论述面向对象技术对程序设计带来革命性改良的同时,也说明了此技术夹杂的负面影响。例如,封装技术降低了程序之间的耦合性,提高了数据访问的安全性,但也带来了操作不便和访问效率的降低,因而引入了友元函数。继承机制使大规模的代码重用成为可能,但也带来了派生类无法摆脱基类无用代码而使代码膨胀过大的弊端。
3) 案例丰富,易学易懂
本书精选了大量例题,在每次引出新语法后,紧接着用简单的语法示例程序进行阐述,然后跟进实际应用案例,使学习者通过示例和案例轻松掌握语法规则,并能够进行灵活应用。
2. 内容安排
第1章绪论: 介绍面向对象程序设计的特点、C++语言的产生与发展、简单的C++程序组成、C++程序的编译环境。
第2章数据类型与程序控制流程: 介绍C++语言的基本数据类型、数据的表示、常量和变量、运算符和表达式,介绍程序的3种基本结构,结构体、共用体和枚举等构造类型。
第3章函数: 介绍函数的分类、函数的定义和调用、函数的参数传递及传递方式、函数的嵌套调用和递归调用、全局变量和局部变量、变量的存储类型。介绍引用类型及函数参数的引用传递。
第4章数组与指针: 介绍数组的概念、定义及使用、指针变量的定义与使用方法、指向变量的指针、指向数组的指针、指向函数的指针、返回指针的函数、指针数组以及这些指针变量的应用。
第5章类与对象: 主要介绍对象与类的概念、类的定义与对象的创建、类成员的访问控制、类的构造函数与析构函数、类的信息隐藏、对象的复制、对象数组、指向对象的指针与对象的引用、对象的动态创建、类的组合、字符串类、类的静态成员、类的友元、类的常数据与常函数成员和常对象。
第6章继承: 介绍继承与派生的概念、派生类的声明与设计、派生类的继承方式与构造函数、派生类与基类的兼容性、简单介绍多继承与虚基类。
第7章多态: 介绍多态的概念、运算符重载、虚函数、纯虚函数与抽象类、模板函数和类模板。
第8章输入输出流: 介绍输入输出流的概念、输入输出流类库、标准输入输出流、文件的打开与读写操作。
第9章异常处理: 介绍异常处理思想、异常处理方法、声明函数异常、标准C++异常类、异常处理中对象的析构。
第10章综合设计: 运用C++的封装、信息隐藏、继承、多态与异常处理综合知识,完成3个应用案例的综合设计。
本书具体编写分工: 第1章、第2章、第3章由宋丽华编写,第5章、第6章、第7章、第9章、第10章由雷鹏编写,第4章、第8章由张小峰编写,全书策划和定稿工作由雷鹏负责。
作为软件工程专业应用型人才培养的系列教材之一,本书曾作为讲义多次印刷,在计算机类、电气信息类等专业中使用。在此正式出版之际,我们在原讲义的基础上,结合多年的教学实践,进行了修改,使其更加适合读者学习。
清华大学出版社的编辑为教材的出版付出了辛勤的汗水,使本书得以及时出版,在此致以衷心的感谢。
限于作者学识水平,书中难免存在不妥之处,我们真诚欢迎读者提出宝贵建议,批评指正。作者电子邮箱: leipldu@163.com。
编者
2014年7月
第1章绪论
1.1面向对象程序设计的特点
1.1.1面向对象程序设计的基本概念
1.1,2面向对象程序设计的特点
1.2面向对象程序设计语言C++
1.2.1C++语言的产生和发展
1.2.2C++语言的特点
1.3C++程序结构
1.4C++程序开发过程
1.4.1C++程序开发过程
1.4.2VisualC++6.0集成开发环境
1.5小结
习题
第2章数据类型与程序控制流程
2.1关键字和标识符
2.1.1关键字
2.1.2标识符
2.2基本数据类型
2.3常量与变量
2.3.1常量
2.3.2变量
2.4运算符与表达式
2.4.1算术运算符和算术表达式
2.4.2赋值运算符和赋值表达式
2.4.3关系运算符和关系表达式
2.4.4逻辑运算符和逻辑表达式
2.4.5条件运算符和条件表达式
2.4.6sizeof运算符
2.4.7位运算符
2.4.8逗号运算符和逗号表达式
2.4.9混合运算时数据类型的转换
2.5输入输出简介
2.5.1输入操作符
2.5.2输出操作符
2.5.3常用控制符
2.6程序的基本控制结构
2.6.1if语句
2.6.2if语句的嵌套
2.6.3switch语句
2.6.4循环语句
2.6.5循环嵌套
2.7C++构造类型
2.7.1结构体类型
2.7.2共用体类型
2.7.3枚举类型
2.8用户自定义类型
2.9小结
习题
第3章函数
3.1函数的定义与使用
3.1.1函数的定义
3.1.2函数的声明与调用
3.1.3函数的参数传递
3.2函数的嵌套调用和递归调用
3.2.1嵌套调用
3.2.2递归调用
3.3内联函数
3.4带默认形参值的函数
3.5函数重载
3.6变量的作用域和生存期
3.6.1变量的作用域
3.6.2变量的生存期
3.7小结
习题
第4章数组与指针
4.1数组
4.1.1数组的定义与引用
4.1.2数组的初始化
4.1_3数组作为函数参数
4.2指针
4.2.1指针与地址
4.2.2指向变量的指针
42.3指针作为函数参数
4.2.4指向数组的指针
4.2.5指向函数的指针
4.2.6返回指针的函数
4.2.7指针数组与多级指针
4.2.8指向结构体的指针
4.2.9new和delete操作符
4.3字符串
4.3.1用字符数组处理字符串
4.3.2用指向字符串的指针处理字符串
4.3.3用strlng类处理字符串
4.4小结
习题
第5章类与对象
5.1对象与类的概念
5.1.1对象
5.1.2类
5.2类的定义与对象的创建
5.2.1类成员的表示
5.2.2类的定义
5.2.3对象的创建与使用
5.3类成员的访问控制
5.4类的信息隐藏
5.5对象的初始化与消亡
5.5.1构造函数
5.5.2析构函数
5.6对象的赋值与复制
5.6.1对象的赋值
5.6.2对象的复制
5.6.3复制构造函数
5.7对象数组
5.8指向对象的指针与对象的引用
5.8.1指向对象的指针
5.8.2this指针
5.8.3对象的动态创建与销毁
5.8.4对象的引用
5.9类的组合
5.9.1组合的概念
5.9.2组合类的构造函数
5.9.3组合类的应用
5.10字符串类
5.11类的静态成员
5.11.1静态数据成员
5.11.2静态函数成员
5.12类的友元
5.12.1友元函数
5.12.2友元类
5.13共享数据的保护
5.13.1常函数成员
5.13.2常对象
5.13.3常数据成员
5.13.4对象的常引用作为函数参数
5.14小结
习题
……
第6章继承
第7章多态
第8章输入输出流
第9章异常处理
第10章综合设计