当前位置:首页 > 工业技术
新概念C++程序设计大学教程
新概念C++程序设计大学教程

新概念C++程序设计大学教程PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:张基温编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302312550
  • 页数:381 页
图书介绍:本书分为3篇19单元:第1篇共8个单元,主要培养面向对象程序设计的基本思维模式并同时介绍一些最基本的C++语法。第2篇6个单元,介绍数组、异常处理、存储属性、动态内存分配等重要语法知识。第3篇4个单元,从const保护、流类、名字空间、多基派生、名字空间、运行时类型鉴别和模板等方面,将学习引向深入。
《新概念C++程序设计大学教程》目录

第1篇 面向对象奠基 3

第1单元 对象世界及其建模 3

1.1程序=模型+表现 3

1.1.1程序的概念 3

1.1.2模型 3

1.1.3模型表现工具 5

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

1.2.1对象与类 8

1.2.2类的层次性 9

1.2.3消息传递 10

1.3 UML建模 10

1.3.1用例图 11

1.3.2序列图 11

1.3.3状态图 11

1.3.4类图与类间关系 12

1.3.5对象图 13

1.3.6类间联系的UML表示 13

习题1 15

第2单元 学生类 17

2.1类Student的声明 17

2.1.1类静态属性的C++++描述 17

2.1.2类行为的C++++描述 19

2.1.3类成员的访问控制 20

2.1.4类Student声明的完整形式 20

2.2类Student的实现 22

2.2.1函数定义概述 22

2.2.2成员函数setStud()的定义 22

2.2.3成员函数dispStud()的定义 23

2.3类的测试与主函数 24

2.3.1类测试的概念 24

2.3.2对象的生成及其成员的访问 25

2.3.3主函数 25

2.4用构造函数初始化对象 27

2.4.1构造函数的初始化机制 27

2.4.2部分初始化构造函数、无参构造函数与构造函数重载 29

2.4.3默认构造函数 30

2.4.4析构函数 30

2.5语法知识扩展1 31

2.5.1 C++++程序的组成 31

2.5.2类与对象 31

2.5.3 C++++单词 32

2.5.4数据类型初步 33

2.5.5变量与常量 35

习题2 36

第3单元 呼叫器 40

3.1呼叫器建模与类声明 40

3.1.1问题与建模 40

3.1.2呼叫器类声明的C ++++描述 41

3.2呼叫器类的实现 41

3.2.1用if-else结构定义display() 42

3.2.2用switch结构定义display() 45

3.2.3 if-else判断结构与switch判断结构比较 47

3.3选择结构的测试 47

3.3.1逻辑覆盖测试及其策略 47

3.3.2测试用例的使用 51

3.3.3呼叫器类测试 51

3.4用静态成员变量存储类对象的共享常量——呼叫器类的改进 53

3.4.1自动变量与静态变量:不同生命期的变量 53

3.4.2使用静态成员变量的呼叫器类及其测试 54

3.4.3静态成员变量的特点 56

3.5王婆卖瓜——静态成员变量作为类对象的共享成员的另一例 56

3.5.1问题与模型 56

3.5.2 WangPo类声明与实现 57

3.5.3 WangPo类的测试 57

3.5.4 WangPo类的改进 58

习题3 60

第4单元 累加器 64

4.1累加器类结构设计与类声明 64

4.1.1累加器类结构设计 64

4.1.2累加器类声明 64

4.2累加器类的实现 65

4.2.1构造函数的实现 65

4.2.2成员函数calc()的定义与while语句 66

4.2.3使用do-while结构的calc()函数 67

4.2.4使用for结构的calc()函数 68

4.2.5三种循环流程控制结构的比较 68

4.3循环结构的测试 68

4.3.1等价分类法与边值分析法 68

4.3.2循环结构的测试用例设计 70

4.3.3累加器类的测试 70

4.3.4变量(对象)的作用域问题 71

4.4语法知识扩展2 71

4.4.1 C++++语句 71

4.4.2函数 72

4.4.3对象的存储 73

习题4 74

第5单元 简单的公司人员体系 77

5.1公司人员的类层次结构 77

5.1.1问题建模 77

5.1.2类层次结构声明 77

5.1.3在派生类中重定义基类成员函数 80

5.1.4类层次结构中成员函数执行规则 82

5.1.5基于血缘关系的访问控制——protected 85

5.2指针与引用 85

5.2.1指针=基类型+地址 85

5.2.2指向对象的指针与this 88

5.2.3引用 89

5.3类层次中的赋值兼容规则与里氏代换原则 91

5.3.1类层次中的赋值兼容规则 91

5.3.2里氏代换原则 92

5.4虚函数与抽象类 93

5.4.1动态绑定与虚函数 93

5.4.2虚函数表 94

5.4.3虚函数规则与虚析构函数 95

5.4.4纯虚函数与抽象类 96

5.4.5虚函数在面向对象程序设计中的意义 98

5.5多基派生与虚拟派生 98

5.5.1多基派生 98

5.5.2多基派生的歧义性问题 101

5.5.3虚拟派生 102

习题5 103

第6单元 面向对象程序设计的原则与设计模式 111

6.1面向对象程序设计的基本原则 111

6.1.1从可重用说起:合成/聚合优先原则 113

6.1.2从可维护性说起:开-闭原则 115

6.1.3面向抽象原则 117

6.1.4单一职责原则 123

6.1.5接口分离原则 124

6.1.6不要和陌生人说话 128

6.2 GoF设计模式 130

6.2.1创建型设计模式 131

6.2.2结构型设计模式 133

6.2.3行为型设计模式 137

习题6 144

第2篇C++++晋阶 149

第7单元C++++常量 149

7.1字面常量 149

7.1.1整型字面常量的表示和辨识 149

7.1.2浮点类型字面常量的表示和辨识 150

7.1.3字符常量 150

7.1.4 bool类型常量 153

7.2 const保护 153

7.2.1用const修饰简单变量 153

7.2.2 const修饰函数 154

7.2.3 const修饰类成员与对象 157

7.2.4 const修饰引用 159

7.2.5 const修饰指针 160

7.3枚举类型 163

7.3.1枚举类型与枚举常量 163

7.3.2枚举变量及其定义 164

7.3.3对枚举变量和枚举元素的操作 164

7.3.4用枚举为类提供整型符号常量名称 165

7.4宏 166

7.4.1宏定义 166

7.4.2整型类型的极值宏 168

7.4.3带参宏定义 169

习题7 172

第8单元 数组——顺序地组织同类型数据 178

8.1数组及其应用 178

8.1.1数组基础 178

8.1.2对象数组的定义与初始化 180

8.1.3数组元素的搜索与排序 182

8.1.4基于容器的for循环 185

8.1.5 const数组 186

8.1.6用数组作为类的数据成员 186

8.1.7数组下标越界问题 189

8.2二维数组 190

8.2.1二维数组的定义 190

8.2.2二维数组的初始化 190

8.2.3二维数组元素的访问 192

8.3数组元素的指针形式 192

8.3.1一维数组元素的指针形式 192

8.3.2二维数组元素的指针形式 194

8.3.3多维数组元素的指针形式 195

8.4栈 196

8.4.1用数组建栈 196

8.4.2栈的应用 197

8.5字符串 198

8.5.1 C字符串 198

8.5.2 string字符串 203

习题8 207

第9单元变量的作用域、生命期、连接性和名字空间 212

9.1基本概念 212

9.1.1标识符的作用域及其分类 212

9.1.2变量的生命期与内存分配 215

9.1.3标识符的连接性 216

9.2 C/C++++的存储属性关键字 217

9.2.1用auto或register定义自动变量 217

9.2.2用extern定义或修饰全局变量 217

9.2.3 static关键词 220

9.3名字空间域 227

9.3.1名字冲突与名字空间 227

9.3.2名字空间的使用 229

9.3.3无名名字空间和全局名字空间 231

习题9 232

第10单元C++++异常处理 236

10.1程序异常及其应对 236

10.1.1程序异常的概念 236

10.1.2程序异常的一般应对 236

10.1.3 C++++异常处理机制 239

10.2 C++++异常类型 241

10.2.1简单异常类型 241

10.2.2用类作为异常类 243

10.2.3 C++++标准异常类 245

10.3常用异常处理技术 247

10.3.1捕获任何异常 247

10.3.2重新抛出异常 248

10.3.3抛出多个异常 251

习题10 253

第11单元 动态内存分配与链表 257

11.1 C++++动态存储分配方法 257

11.1.1存储空间的编译器分配和程序员分配 257

11.1.2用new为单个数据动态分配内存 257

11.1.3用delete回收单个数据的动态存储空间 258

11.1.4数组的动态存储分配 260

11.1.5对象的动态存储分配 261

11.1.6数据成员的动态存储分配 261

11.1.7对象的浅复制与深复制 263

11.2 C++++动态存储分配中的异常处理 264

11.2.1捕获std: : bad_alloc异常 264

11.2.2避免使用std: : bad_alloc 265

11.3链表 265

11.3.1链表及其特点 265

11.3.2单向链表类设计 267

11.3.3单链表的操作与成员函数设计 269

11.3.4链表的测试 273

习题11 276

第3篇C++++探幽 281

第12单元C++++I/O流 281

12.1 C++++流与流类 281

12.1.1流与缓冲区 281

12.1.2 C++++流类库 282

12.1.3 ios类声明 284

12.2标准流对象与标准I/O流操作 285

12.2.1 C++++标准流对象 285

12.2.2标准输入输出流操作 285

12.3流的格式化 286

12.3.1 ios类的格式化成员函数和格式化标志 286

12.3.2格式化操作符 287

12.4文件流 288

12.4.1文件流的概念及其分类 288

12.4.2文件操作过程 288

12.5流的错误状态及其处理 292

12.5.1流的出错状态 292

12.5.2测试与设置出错状态位的ios类成员函数 292

习题12 293

第13单元C++++函数细节 294

13.1函数的参数 294

13.1.1值传递:变量/对象参数 294

13.1.2名字传递:引用参数 296

13.1.3地址传递:地址/指针参数 299

13.1.4函数调用时的参数匹配规则 302

13.1.5关于函数实参的计算顺序 303

13.1.6形参带有默认值的函数 303

13.1.7参数数目可变的函数 305

13.2函数返回 306

13.2.1函数返回的基本特点 306

13.2.2返回指针值的函数 306

13.2.3返回引用的函数 307

13.3函数名重载 310

13.3.1函数名重载的基本方式 310

13.3.2编译器对于函数名重载的匹配规则 310

13.3.3函数名重载的误区 311

13.3.4函数名重载中的二义性 311

13.3.5函数名重载与在派生类中重定义基类成员函数 312

13.4操作符重载 312

13.4.1操作符重载及其规则 313

13.4.2成员函数形式的操作符重载 314

13.4.3友元函数形式的操作符重载 318

13.4.4赋值操作符重载 322

习题13 323

第14单元 类型转换与运行时类型鉴别 331

14.1数据类型转换 331

14.1.1算术类型的隐式转换规则与校验表 331

14.1.2显式类型转换 333

14.1.3对象的向上转换和向下转换 334

14.1.4转换构造函数 334

14.2 dynamic_cast操作符 338

14.2.1 dynamic_cast及其格式 338

14.2.2上行强制类型转换与下行强制类型转换 338

14.2.3交叉强制类型转换 342

14.2.4类指针到void的强制转换 342

14.2.5 dynamic_cast应用实例 342

14.3用typeid获得对象的类型信息 344

14.3.1 type_info类 344

14.3.2 typeid操作符的应用 345

14.3.3关于typeid的进一步说明 346

习题14 347

第15单元 模板 349

15.1算法抽象模板——函数模板 349

15.1.1从函数重载到函数模板 349

15.1.2模板函数重载 350

15.1.3函数模板的实例化与具体化 352

15.2数据抽象模板——类模板 355

15.2.1类模板的定义 355

15.2.2类模板的实例化与具体化 356

15.2.3类模板的使用 357

15.2.4类模板实例化时的异常处理 359

15.3标准模板库 360

15.3.1容器 360

15.3.2算法与函数对象 362

15.3.3迭代器 367

15.3.4 STL标准头文件 370

习题15 371

附录A C++++保留字 377

A.1 C++++关键字 377

A.2替代标记 377

A.3 C++++库保留名称 378

A.4特定字 378

附录B C++++运算符的优先级别和结合方向 379

参考文献 381

相关图书
作者其它书籍
返回顶部