《面向对象程序设计(C++)》综合考虑了“关于进一步加强高等学校计算机基础教学意见”中C++语言程序设计基础的大纲要求,以及中国计算机科学与技术学科教程和计算机学科专业规范中关于程序设计基础、算法和复杂性、程序设计语言、软件工程领域中的相关知识单元要求,并结合多年来在面向对象程序设计和C++语言教学实践中的经验编写而成。
《面向对象程序设计(C++)》以面向对象程序设计思想和方法为主线,以C++语言为载体,详细讲述面向对象程序设计与C++语言中的主要内容:面向对象思想和方法、数据类型及基本计算、函数与程序结构、类与对象、运算符重载、模板与STL、继承与派生、虚函数与多态性、C++的I/O流、异常处理等。全书共分为10章,体系编排完整,内容结构合理,例题丰富,注重反映C++语言的新规范、新技术和新发展。
《面向对象程序设计(C++)》以培养设计、分析、建模和应用能力为目的,遵循计算机学科专业规范要求,适合作为计算机科学与技术及相关专业的课程教材,也可供读者自学使用和参考。
面向对象程序设计思想和方法是现今主流的程序设计方法,它能够更好地对现实世界中的各种数据、概念进行建模和抽象。此外,应用面向对象程序设计思想和方法,能够更好地组织和管理大型程序项目,并有利于继承发展程序设计领域中的各种杰出的智慧和闪亮的思想,例如各种程序库和设计模式。
C++语言作为当今最流行的一种高级程序设计语言,它完全兼容C语言,支持结构化程序设计,同时也支持面向对象程序设计。C++程序设计在运行效率、语法与语义、组件与类库、代码与资源等方面都有着其他程序语言所不能比拟的显著优势。
本书综合考虑了“关于进一步加强高等学校计算机基础教学意见”中C++语言程序设计基础的大纲要求,以及中国计算机科学与技术学科教程和计算机学科专业规范中关于程序设计基础、算法和复杂性、程序设计语言、软件工程领域中的相关知识单元要求,并结合多年来在面向对象程序设计和C++语言教学实践中的经验编写而成。
本套教材分为《面向对象程序设计(C++)》和《面向对象程序设计(C++)学习与实践》。《面向对象程序设计(C++)》教材以C++语言为载体,结合C++语言的各种特性和要点,重点讲授面向对象程序设计的思想和方法。《面向对象程序设计(C++)学习与实践》是与《面向对象程序设计(C++)》配套的教材,包括模拟试题、试验指导、程序调试基础三部分。本套教材以面向对象方法和C++语言的学习与实践为主,重在培养学生的分析、设计、抽象和应用能力。
第1章 面向对象程序设计概述
1.1 程序设计概述
1.1.1 计算机系统
1.1.2 算法与程序
1.1.3 程序设计
1.2 面向对象程序设计
1.2.1 面向对象程序设计的基本特点
1.2.2 面向对象的软件工程
1.2.3 UML(UnifiodModelingLanguage)
本章小结
习题1
第2章 数据类型及其运算
2.1 基本数据类型与基本话算
2.1.1 基本数据类型
2.1.2 基本输入/输出
2.1.3 表达式与基本运算
2.1.4 应用举例
2.2 语句与控制结构
2.2.1 语句
2.2.2 控制结构
2.2.3 转向语句
2.2.4 应用举例
2.3 复合数据类型
2.3.1 数组
2.3.2 指针
2.3.3 引用
2.3.4 字符串
2.3.5 应用举例
本章小结
习题2
第3章 函数与程序结构
3.1 函数
3.1.1 函数概述
31.2 C++新增的函数机制
31.3 函数嵌套调用及递归调用
3.1.4 函数应用
31.5 应用举例
3.2 存储类、作用域和程序结构
32.1 变量的存储类
32.2 标识符的作用域
32.3 编译预处理
3.2.4 程序的多文件结构
32.5 应用举例
本章小结
习题3
第4章 类与对象
4.1 从结构到类
4.1.1 结构类型概述
41.2 结构类型与结构变量定义
4.1.3 结构应用
4.2 类的定义
4.2.1 类的定义
4.2.2 定义对象
4.2.3 访问类的成员
4.2.4 类的程序结构
4.3 对象的定义
4.3.1 构造函数
4.3.2 析构函数
4.3.3 三个特殊的构造函数
4.3.4 this指针
4,3.5 应用举例
4.4 类的复合
4.4.1 类的复合
4.4.2 应用举例
4.5 const关键字
4.5.1 常见用法
4.5.2 应用举例
4.6 new/delete运算符
4.6.1 基本用法
4.6.2 高级用法
4.7 友元和静态
4.7.1 友元函数和友元类
4.7.2 静态成员
4.7.3 应用举例
本章小结
习题4
第5章 运算符重载
5.1 概述
5.1.1 基本概念
5.1.2 运算符重载的语法规则
5.1.3 运算符重载的形式
5.2 成员函数形式的运算符重载
5.2.1 复数类Complex
5.2.2 有理数类Rational
5.3 友元函数形式的运算符重载
5.3.1 友元函数形式的语法
5.3.2 重载流插入运算符和提取符
5.4 几个运算符的重载
5.4.1 重载增量/减量运算符
5.4.2 重载下标运算符
5.4.3 重载函数调用运算符
5.4.4 重载转换运算符
5.5 综合应用举例
本章小结
习题5
第6章 模板与STL
6.1 模板概述
6.1.1 数据类型的参数化
6.1.2 模板的初认识
6.2 函数模板
6.2.1 函数模板的定义
6.2.2 函数模板的实例化
6.2.3 函数模板的重载
6.2.4 函数模板对数据类型的需求
6.3 类模板
6.3.1 类模板的定义
6.3.2 类模板的实例化
6.4 STL概述
6.4.1 STL及其组件
6.4.2 常用头文件
6.5 函数对象与算法
6.5.1 函数对象
6.5.2 STL算法
6.6 容器
6.6.1 string类
6.6.2 vector容器类
6.6.3 list容器类
本章小结
习题6
第7章 继承与派生
7.1 基本概念
7.1.1 概述
7.1.2 继承的机制
7.1.3 继承与复合
7.1.4 继承的语法
7.1.5 应用举例
7.2 访问控制
7.2.1 继承的三种方式
7.2.2 公有继承应用举例
7.3 派生类的构造函数
7.3.1 派生类的构造函数
7.3.2 派生类对象构造和析构的顺序
7.4 几个问题
7.4.1 冲突:成员名限定法
7.4.2 成员覆盖:支配规则
7.4.3 赋值兼容规则
7.4.4 虚基类
7.4.5 类模板的继承与派生
7.4.6 应用举例
本章小结
习题7
第8章 虚函数与多态性
8.1 概述
8.1.1 程序关联的两种方式
8.1.2 问题的引出
8.1.3 多态性
8.2 虚函数
8.2.1 虚函数的定义
8.2.2 虚析构函数
8.2.3 应用举例
8.3 抽象类
8.3.1 纯虚函数
8.3.2 抽象类
8.3.3 应用举例
本章小结
习题8
第9章 C++的I/O流
9.1 概述
9.1.1 流与缓冲区
9.1.2 ios基类
9.1.3 标准流对象
9.2 标准I/O流
9.2.1 标准输出流
9.2.2 标准输入流
9.3 格式化I/O
9.3.1 流格式状态标志位
9.3.2 成员函数
9.3.3 流操纵算子
9.4 文件I/O流
9.4.1 基本概念
9.4.2 文件操作
9.4.3 应用举例
9.5 字符串I/O流
9.5.1 基本概念
9.5.2 字符串输出流
9.5.3 字符串输入流
本章小结
习题9
第10章 异常处理
10.1 概述
10.2 C++的异常处理
10.2.1 C++异常处理基础
10.2.2 异常处理的执行过程
10.2.3 异常的类型匹配规则
10.2.4 异常规范
10.2.5 异常的重新抛出
10.3 异常处理与构造函数和析构函数
10.3.1 异常抛出时局部对象的释放
10.3.2 在构造函数中抛出异常
10.3.3 在析构函数中抛出异常
10.4 C++标准库中的异常处理
10.4.1 exception基类
10.4.2 逻辑异常与运行时异常
本章小结
习题10
参考文献
第3章 函数与程序结构
3.1 函数
3.1.1 函数概述
在面向过程的结构化程序设计中,函数是结构化程序的最小模块,它是程序设计的基本单位。函数是对处理问题过程的一种抽象,通常在编程中将相对独立、经常被使用的某种功能抽象为函数,它可以被反复地使用,在使用时只关心其功能及用法,而不必关心其功能的具体实现。C++语言全面继承了C语言的语法,包括函数的定义及使用方法,因此,在面向对象的程序设计语言C++中,保留了函数是程序的组成部分的特征。所以,函数在C++语言中,同样是十分重要的,它是面向对象程序设计中对于某种功能的抽象。函数在程序设计中,对于代码重用和提高程序的可靠性是十分重要的,它也便于程序的分工合作和修改维护,从而可以提高程序的开发效率。
1.函数分类
从用户使用的角度来看,c++中的函数分为两类:系统函数和用户自定义的函数。
①系统函数,即库函数。这是由编译系统提供的,用户不必自己定义这些函数,可以直接使用它们。充分利用C++系统函数,可以减少编程的工作量,提高程序的运行效率和可靠性。