图书简介:
目 录
第1章 面向对象方法学 1
1.1 面向对象方法学的发展 1
1.2 面向对象方法学的概述 2
1.2.1 面向对象分析 2
1.2.2 面向对象设计 3
1.2.3 面向对象实现 3
1.3 面向对象程序设计的特性 3
1.3.1 抽象 4
1.3.2 封装 4
1.3.3 继承 5
1.3.4 多态 5
1.4 面向对象程序设计的术语 6
1.5 面向对象程序设计语言 7
1.5.1 C++ 7
1.5.2 Java 8
1.5.3 C# 9
1.5.4 Python 10
小结 11
习题1 11
第2章 C++概述 12
2.1 C++发展历程与特点 12
2.2 C++程序 13
2.2.1 C++程序的格式与构成 13
2.2.2 C++程序的编译与执行 15
2.3 从C到C++ 16
2.4 C++的一些新特性 18
2.4.1 注释 18
2.4.2 新的数据类型 19
2.4.3 灵活的变量说明 19
2.4.4 作用域运算符 19
2.4.5 命名空间 20
2.4.6 新的输入/输出 21
2.4.7 头文件 23
2.4.8 引用 24
2.5 Visual C++ 2019开发环境简介 28
小结 30
习题2 30
第3章 类与对象 32
3.1 类的定义 32
3.1.1 类定义格式 32
3.1.2 成员函数的定义 34
3.1.3 类的作用域 34
3.2 对象的定义与使用 35
3.2.1 对象的定义 35
3.2.2 对象的使用 36
3.2.3 对象的赋值 38
3.2.4 对象的生命周期 39
3.3 构造函数和析构函数 42
3.3.1 构造函数 42
3.3.2 析构函数 44
3.4 内存的动态分配 47
3.4.1 运算符new 47
3.4.2 运算符delete 48
3.5 对象数组和对象指针 49
3.5.1 对象数组 49
3.5.2 对象指针 51
3.5.3 自引用指针this 52
小结 54
习题3 54
第4章 函数 56
4.1 函数参数的传递机制 56
4.1.1 使用对象作为函数参数 56
4.1.2 使用对象指针作为函数参数 57
4.1.3 使用对象引用作为函数参数 58
4.1.4 三种传递方式比较 59
4.2 内联函数 59
4.3 函数重载 60
4.3.1 非成员函数重载 60
4.3.2 成员函数重载 62
4.4 函数的默认参数值 63
4.5 友元 65
4.5.1 友元函数 65
4.2.2 友元类 69
4.6 静态成员 70
4.6.1 静态数据成员 71
4.6.2 静态成员函数 73
4.6.3 静态对象 76
4.7 应用实例 77
小结 83
习题4 84
第5章 常量 88
5.1 const的最初动机 88
5.1.1 由define引发的问题 88
5.1.2 const的使用方法 88
5.2 const与指针 89
5.2.1 指向常量的指针 90
5.2.2 常指针 90
5.3 const与引用 91
5.4 const与函数 91
5.4.1 const类型的参数 91
5.4.2 const类型的返回值 92
5.4.3 const在传递地址中的应用 93
5.5 const与类 94
5.5.1 类内const局部常量 94
5.5.2 常对象与常成员函数 95
5.6 拷贝构造函数 97
小结 101
习题5 102
第6章 运算符重载 103
6.1 运算符重载的基本概念 103
6.2 成员函数重载运算符 103
6.2.1 重载单目运算符 104
6.2.2 重载双目运算符 105
6.2.3 重载++、--运算符 107
6.2.4 重载赋值运算符 110
6.2.5 重载下标运算符 113
6.2.6 重载函数调用运算符 115
6.3 友元函数重载运算符 115
6.4 成员函数与友元函数重载运算符的
比较 119
6.5 类型转换 121
6.5.1 系统预定义类型之间的
转换 121
6.5.2 用构造函数实现类型转换 121
6.5.3 用运算符转换函数实现类型
转换 124
小结 127
习题6 128
第7章 组合、继承与多态 130
7.1 组合 130
7.2 继承 131
7.3 继承与组合 133
7.4 继承与组合中的构造和析构 136
7.4.1 成员对象初始化 136
7.4.2 构造和析构顺序 136
7.5 名字覆盖 140
7.6 虚函数 141
7.6.1 静态绑定与动态绑定 142
7.6.2 虚函数的定义 142
7.6.3 虚析构函数 144
7.7 纯虚函数和抽象基类 144
7.8 多重继承 146
7.8.1 多继承语法 147
7.8.2 虚基类 148
7.8.3 最终派生类 149
7.8.4 多继承的构造顺序 150
小结 152
习题7 152
第8章 模板 156
8.1 模板的概念 156
8.2 函数模板与模板函数 156
8.3 类模板与模板类 160
8.4 应用实例 164
小结 171
习题8 171
第9章 输入流/输出流 173
9.1 C++流类库简介 173
9.2 输入流/输出流格式 174
9.2.1 基本输出流 174
9.2.2 基本输入流 176
9.2.3 格式化输入/输出 177
9.2.4 其他输入/输出函数 183
9.3 用户自定义类型的输入/输出 185
9.3.1 重载输出运算符 185
9.3.2 重载输入运算符 186
9.4 文件输入/输出 188
9.4.1 顺序访问文件 188
9.4.2 随机访问文件 192
9.5 应用实例 193
小结 198
习题9 198
第10章 异常处理 201
10.1 异常处理概述 201
10.2 抛出异常 201
10.3 异常捕获 202
10.3.1 异常处理语法 202
10.3.2 异常接口声明 204
10.3.3 捕获所有异常 204
10.3.4 未捕获异常的处理 204
10.4 构造函数、析构函数与异常处理 205
10.5 异常匹配 207
10.6 标准异常及层次结构 208
小结 208
习题10 208
第11章 Visual C++ 2019开发环境 209
11.1 Visual C++ 2019概述 209
11.1.1 Visual Studio 2019 209
11.1.2 Visual C++ 2019 210
11.2 Visual C++ 2019环境 210
11.2.1 Visual C++ 2019操作界面 210
11.2.2 项目 212
11.2.3 调试环境 213
11.3 Windows编程 214
11.3.1 Windows常用数据类型 215
11.3.2 消息与事件 215
11.3.3 窗口消息示例 217
11.4 MFC类库 219
11.5 MFC编程实例 222
小结 225
习题11 225
第12章 综合实例 226
12.1 系统分析与设计 226
12.1.1 系统功能分析 226
12.1.2 系统功能类模型 226
12.1.3 系统功能流程 227
12.2 设计实现 228
12.2.1 系统程序框架生成 228
12.2.2 建立图元类 230
12.2.3 界面控制 233
12.2.4 绘制图元——线段 235
12.2.5 绘制图元——矩形 240
12.2.6 绘制图元——椭圆 243
12.2.7 绘制图元——文字 246
12.2.8 绘制图元——折线/多边形 248
12.2.9 图元文件存取 251
小结 260
习题12 260
参考文献 261
展开
前 言
随着新一代信息技术诸如人工智能、区块链、云计算、大数据、物联网、移动计算等技术的蓬勃兴起和快速发展,要求学生具备熟练的编程技能,并加强理论联系实际的能力,从而提高其就业竞争力。面向对象程序设计讲授面向对象程序设计的基本思想与原理,通过使用C++进行面向对象程序设计实现。课程内容包括面向对象的基本概念,建立和描述对象模型的方法,以及面向对象分析、设计和实现方法等内容。课程目的是培养学生掌握程序设计理念与方法,强化学生的逻辑思维与算法思维,具备熟练的编程技能,掌握计算机软/硬件系统开发过程中所使用的原理、工具和方法。
近年来,人工智能的复兴,尤其是机器学习的崛起,引来了C++的再次复兴,Python、Java等语言也随之得到广泛引用。由于C++具有天生的高效、快捷等特性,因此被深入应用于人工智能的核心部分,并广泛应用于游戏应用、嵌入式应用、物联网应用、大型社交软件等的核心部分。
C++是从C语言发展而来的,全面兼容了C语言,是一种面向对象的编程语言。对于具有C语言基础的人来说,学习C++会非常容易。本书是Visual C++ .NET入门教材,在C语言的基础之上,并紧密结合C++标准,使读者从C语言顺利过渡到C++。本书涵盖了该语言的主要特征,使初学者能快速学习并掌握C++。本书在内容组织上采用案例教学的方法,由浅入深,对每个C++的知识点从需求到应用做了详细的描述。从基本的数据单元“类”开始点滴扩展,逐步深入,讲述C++程序设计中的面向对象的封装、继承、多态等方法,揭示C++程序设计的初衷。在每章后配备了相应的习题,有助于读者灵活掌握各知识点。
本书作者长期从事C++项目开发及本科C++程序设计课程的教学工作,还主持和参与了多个教改项目及相应的省级精品课程建设工作,具有丰富的教学与程序开发经验。
全书分为12章,第1章为面向对象方法学;第2章为C++概述;第3章为类与对象;第4章为函数;第5章为常量;第6章为运算符重载;第7章为组合、继承与多态;第8章为模板;第9章为输入流/输出流;第10章为异常处理;第11章为Visual C++ 2019开发环境;第12章为综合实例。书中所有例题均在Visual C++ 2019下调试通过,并配有大量习题。本书配有电子课件等教学资源,请登录华信教育资源网www.hxedu.com.cn,注册后免费下载;本书还配有慕课,请登录智慧树网站www.zhihuishu.com,搜索“面向对象程序设计”或扫描课程二维码。
本书架构由王晓帆、李薇负责确定,并组织教学一线的教师共同编写完成。其中,第2、5、7、9~12章及1.1节和1.5节由王晓帆编写,第3、4、6、8章及第1章其他部分由李薇编写,全书由姚全珠负责统稿,由王彬完成校稿。
由于作者水平有限,难免有疏漏和错误之处,敬请各位专家和读者批评指正。
作 者
展开