《面向对象程序设计教程 C++语言描述 第3版 微课版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:马石安,魏文平编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2018
  • ISBN:9787302510628
  • 页数:303 页
图书介绍:本教材以面向对象程序设计(Object?Oriented Programming,OOP)方法为核心,并选用C++语言作为工具。 本书浓缩了作者多年来软件开发经验和教学实践体会,围绕两条主线进行编写: 一条主线以通俗易懂的语言围绕类与对象,介绍面向对象程序构造的基本思想; 另一主线设计了丰富的实用程序,通过实践引导读者快速掌握使用C++语言开发面向对象程序的方法和技巧。

第1章 面向对象程序设计概论 1

1.1程序设计方法 1

1.1.1结构化程序设计方法 1

1.1.2面向对象程序设计方法 2

1.2面向对象程序设计的基本概念 5

1.2.1抽象 5

1.2.2封装 6

1.2.3消息 6

1.2.4继承 6

1.2.5多态 7

1.3面向对象程序设计语言 7

1.3.1混合型的面向对象程序设计语言C++ 7

1.3.2纯面向对象程序设计语言Java 8

1.4C++对面向对象程序设计方法的支持 9

1.5C++程序的实现 9

1.5.1Visual C++6.0 10

1.5.2Visual Studio 13

习题 19

第2章 从C到C++ 21

2.1C++程序基本组成 21

2.1.1C++程序基本结构 21

2.1.2C++程序基本组成 21

2.2简单的输入输出 23

2.2.1键盘输入 24

2.2.2屏幕输出 24

2.3指针与引用 25

2.3.1指针 25

2.3.2引用 27

2.4函数 28

2.4.1函数的定义与调用 28

2.4.2函数原型与带默认参数的函数 30

2.4.3函数的参数传递 31

2.4.4内联函数与重载函数 35

2.4.5标准库函数 37

2.5new和delete运算符 39

2.6其他若干重要的C++特性 40

2.6.1符号常量 40

2.6.2变量的定义 40

2.6.3强制类型转换 40

2.6.4string类型 41

2.6.5结构 42

2.7应用实例 42

2.7.1结构体的定义 42

2.7.2主要函数的实现 43

2.7.3程序的主函数 44

习题 44

第3章 类与对象 48

3.1类 48

3.1.1类的定义 48

3.1.2类成员的访问控制 48

3.1.3成员函数的实现 49

3.2对象 51

3.2.1对象的声明 51

3.2.2对象的创建和销毁 51

3.2.3对象成员的访问 52

3.3构造函数与析构函数 53

3.3.1构造函数 53

3.3.2析构函数 55

3.3.3拷贝构造函数 57

3.4this指针 60

3.5子对象和堆对象 63

3.5.1子对象 63

3.5.2堆对象 66

3.6类的静态成员 71

3.6.1静态数据成员 71

3.6.2静态成员函数 73

3.7类的友元 75

3.7.1友元函数 75

3.7.2友元类 77

3.8应用实例 78

3.8.1Student类的定义 79

3.8.2Student类中函数的实现 79

3.8.3静态成员的初始化及程序的主函数 81

习题 83

第4章 继承机制 89

4.1基类和派生类 89

4.1.1继承和派生的基本概念 89

4.1.2继承的种类 90

4.2单继承 90

4.3派生类的访问控制 92

4.3.1公有继承 92

4.3.2私有继承 93

4.3.3保护继承 94

4.4多继承 96

4.4.1多继承的定义格式 96

4.4.2二义性和支配规则 98

4.4.3虚基类 102

4.5继承机制下的构造函数与析构函数 103

4.5.1继承机制下构造函数的调用顺序 104

4.5.2派生类构造函数的规则 110

4.5.3继承机制下析构函数的调用顺序 115

4.6应用实例 118

4.6.1保护成员的作用 118

4.6.2私有继承 119

习题 120

第5章 多态性和虚函数 123

5.1静态联编与动态联编 123

5.1.1静态联编 123

5.1.2动态联编 126

5.2虚函数 126

5.2.1虚函数的作用 126

5.2.2虚函数与一般重载函数的区别 128

5.2.3继承虚属性 128

5.3成员函数中调用虚函数 133

5.4构造函数和析构函数中调用虚函数 134

5.5纯虚函数和抽象类 135

5.5.1纯虚函数 135

5.5.2抽象类 137

5.6虚析构函数 137

5.6.1虚析构函数的定义与使用 137

5.6.2虚析构函数的必要性 139

5.7应用实例 140

5.7.1类的设计 140

5.7.2基类Employee的定义 141

5.7.3兼职技术人员类Technician的定义 141

5.7.4销售员类Salesman的定义 142

5.7.5经理类Manager的定义 142

5.7.6销售经理类Salesmanager的定义 143

5.7.7编号的初始化与主函数 143

习题 144

第6章 运算符重载 146

6.1运算符重载的规则 146

6.1.1运算符重载的规则 146

6.1.2编译程序选择重载运算符的规则 147

6.2运算符重载的形式 147

6.2.1用成员函数重载运算符 147

6.2.2用友元函数重载运算符 149

6.2.3两种运算符重载形式的比较 151

6.3单目运算符重载 151

6.4赋值运算符重载 156

6.4.1浅拷贝与深拷贝 156

6.4.2重载赋值运算符的格式 157

6.4.3重载赋值运算符函数的返回值 160

6.4.4赋值运算符重载函数与拷贝构造函数的区别 160

6.5特殊运算符重载 162

6.5.1“[]”运算符重载 162

6.5.2“()”运算符重载 165

6.6类类型转换运算符重载 168

6.6.1基本类型到类类型的转换 168

6.6.2类类型到基本类型的转换 169

6.7应用实例 172

习题 176

第7章 模板 178

7.1模板的概念 178

7.1.1强类型的严格性与灵活性 178

7.1.2解决冲突的途径 178

7.1.3模板的概念 179

7.2函数模板 179

7.2.1函数模板的定义 179

7.2.2函数模板的实例化 180

7.2.3函数模板的重载 182

7.3类模板 186

7.3.1类模板定义 186

7.3.2类模板的实例化 187

7.3.3使用函数类型参数的类模板 189

7.3.4使用默认参数的类模板 191

7.4标准模板库STL 193

7.4.1容器 193

7.4.2迭代器 196

7.4.3算法 199

7.5应用实例 202

7.5.1通过自定义类模板对双向链表进行基本操作 202

7.5.2通过STL对双向链表进行基本操作 209

习题 211

第8章 I/O流类库 213

8.1概述 213

8.1.1流的概念 213

8.1.2流类库 213

8.1.3支持文件的流类 214

8.2格式化输入输出 215

8.2.1使用ios类的成员函数进行格式控制 215

8.2.2使用控制符进行格式控制 219

8.3重载流的插入符和提取符 220

8.4I/O常用成员函数 222

8.4.1输入流的常用成员函数 222

8.4.2输出流的常用成员函数 223

8.5流的错误处理 224

8.5.1I/O流的错误状态字 224

8.5.2I/O流的状态函数 225

8.6文件流操作 226

8.6.1文件流 226

8.6.2文件的打开与关闭 227

8.6.3文件的读写 228

8.7应用实例 236

8.7.1定义类 236

8.7.2数据输入函数 236

8.7.3数据显示函数 237

8.7.4数据查找函数 237

8.7.5数据插入函数 238

8.7.6主函数 238

习题 240

第9章 异常处理 244

9.1异常处理的基本思想 244

9.1.1异常处理的概念 244

9.1.2异常处理的基本思想 245

9.2异常处理的实现 246

9.2.1异常处理的语法 247

9.2.2异常处理的执行过程 248

9.2.3异常接口声明 249

9.2.4标准库的异常处理 252

9.3定义自己的异常类 253

9.4异常的逐层传递 255

9.5异常处理中的构造与析构 256

9.6应用实例 258

9.6.1采用自定义异常类 259

9.6.2采用标准异常类 260

习题 261

第10章 综合应用实例 264

10.1设计任务与要求 264

10.2程序的总体结构 264

10.3详细设计 265

10.3.1分数类设计 265

10.3.2异常类设计 269

10.3.3测试函数设计 269

10.4程序清单 270

10.5实例输出 277

附录 实验 281

实验1 简单的C++程序(2学时) 281

实验2 引用与函数(2学时) 282

实验3 构造函数与析构函数(2学时) 284

实验4 静态成员与友元(4学时) 286

实验5 继承与派生(4学时) 288

实验6 多态性与虚函数(4学时) 290

实验7 运算符重载(2学时) 294

实验8 模板(2学时) 297

实验9 I/O流(2学时) 298

实验10 异常处理(2学时) 299

参考文献 302