目 录 1
前言 1
第1章面向对象技术概论 1
1.1软件开发方法概述 2
1.1.1结构化方法 3
1.1.2模块化方法 4
1.1.3面向数据结构方法 4
1.1.4面向对象方法 5
1.1.5软件开发方法的评价与选择 6
1.2软件生存周期 7
1.2.1软件定义阶段 8
1.2.2软件开发阶段 8
1.2.3软件使用、维护和更新换代阶段 10
1.3面向对象的基本概念 10
1.3.1 面向对象方法的特点 10
1.3.3类(Class) 12
1.3.2对象(Object) 12
1.3.4封装(Encapsulation) 14
1.3.5继承(Inheritance) 14
1.3.6消息(Message) 16
1.3.7多态性(Polymorphism) 17
1.4面向对象系统开发过程 18
1.5.1 OOA步骤 20
1.5.2 OOA过程 20
1.5面向对象分析 20
1.5.3建造对象类静态结构模型 27
1.5.4建造对象类动态结构模型 27
1.5.5建造对象类功能处理模型 28
1.6面向对象设计 28
1.6.1OOD的步骤 28
1.6.2系统对象设计 29
1.6.3系统体系结构设计 30
1.6.5通用设计样式 31
1.6.4系统优化和审查 31
1.7.1 系统文档资料 32
1.7系统文档、实现、测试和维护 32
1.7.2系统实现(OOI) 33
1.7.3系统测试(OOT) 33
1.7.4系统维护(OOM) 34
1.8几种典型的面向对象方法简介 35
1.8.1布什(Booch)面向对象方法论 35
1.8.2雅寇森(Jacobson)的面向对象方法论 36
1.8.3尤顿(Coad-Yourdon)的面向对象方法论 37
1.8.4詹姆斯·云豹(James Rumbaugh)的面向对象方法论 38
1.9小结 40
1.10习题 41
第2章C++简单程序设计 43
2.1 C++语言概述 43
2.1.1 C++语言的诞生 43
2.1.3 C++程序实例 44
2.1.2 C++的特点 44
2.1.4字符集 45
2.1.5 ASCⅡ码 45
2.2 C++程序基本要素 47
2.2.1词法记号 47
2.2.2常量 49
2.2.3变量 54
2.2.4符号常量 55
2.2.5运算符与表达式 57
2.3 C++数据类型 68
2.3.1基本数据类型 68
2.3.2枚举类型 70
2.3.3结构体 72
2.3.4联合体 76
2.3.5位域 78
2.4.1 I/O流 79
2.4.2预定义的插入符和提取符 79
2.4数据的输入与输出 79
2.4….3简单的I/O格式控制 81
2.5条件控制 81
2.5.1条件语句 81
2.5.2 switch语句 87
2.6循环 90
2.6.1 for循环语句 90
2.6.2 while循环语句 93
2.6.3 do…while循环语句 94
2.6.4转移语句 95
2.6.5多重循环 96
2.7数组 102
2.7.1数组的概念 102
2.7.2一维数组 102
2.7.3二维数组 109
2.7.4使用typedef语句定义数组类型 112
2.8字符串 114
2.8.1字符串概念 114
2.8.2字符串函数 116
2.9小结 119
2.10习题 120
第3章函数 126
3.1 函数的定义与使用 126
3.1.1 函数的定义与说明 126
3.1.2函数的调用 128
3.1.3函数的参数和返回值 130
3.2传值调用与引用调用 137
3.2.1传值调用 137
3.2.2 引用调用 139
3.3函数和变量的作用域 146
3.3.1 函数的作用域 146
3.3.2变量的作用域和生存期 146
3.4.1内联函数 148
3.4 内联函数和函数重载 148
3.4.2函数重载 149
3.5 数的嵌套调用和递归调用 152
3.5.1 函数的嵌套调用 152
3.5.2函数的递归调用 153
3.6函数模板和使用C++系统函数 157
3.6.1函数模板 157
3.6.2 使用C++系统函数 160
3.8习题 161
3.7小结 161
第4章类与对象 164
4.1类和对象的构造与创建 164
4.1.1类设计的基本概念 164
4.1.2类的定义格式 165
4.1.3类的成员函数 166
4.1.4类成员的访问控制 167
4.1.5对象的声明与使用 168
4.2.1构造函数与拷贝构造函数 170
4.2构造函数和析构函数 170
4.2.2析构函数 176
4.3 对象的生存期和类的作用域 178
4.3.1对象的生存期 178
4.3.2类的作用域 179
4.4友元函数和友元类 181
4.4.1友元函数 181
4.4.2友元类 183
4.5静态成员 185
4.5.1静态数据成员 185
4.5.2静态成员函数 186
4.6类和对象的进一步应用 187
4.6.1类对象作为成员 187
4.6.2常对象 189
4.6.3 对象作函数参数 191
4.6.4对象数组 193
4.7.1类模板的定义 194
4.7类模板 194
4.7.2类模板的使用 197
4.8小结 198
4.9习题 199
第5章指针 204
5.1指针的概念 204
5.2指针的定义、赋值及运算 205
5.2.1如何定义指针 205
5.2.2“*”和“ ”运算符 206
5.2.3指针的赋值 206
5.2.4指针的运算 208
5.3指针与数组 212
5.3.1用指针访问数组元素 212
5.3.2指向数组的指针 215
5.3.3指针数组 216
5.4.1字符数组与字符指针 218
5.4指针与字符串 218
5.4.2字符串处理函数 221
5.4.3 string类 225
5.5指针与函数 226
5.5.1指针作为函数参数 226
5.5.2指针函数 229
5.5.3函数指针 230
5.6指针与引用 233
5.7其他类型的指针 234
5.7.1 const指针 234
5.7.2对象指针 236
5.7.3 this指针 237
5.8动态内存分配 240
5.8.1堆内存 240
5.8.2 new和delete运算符 240
5.8.3动态内存分配与释放函数 243
5.10习题 245
5.9小结 245
第6章继承与派生 250
6.1继承的含义 250
6.2继承的语法 251
6.3继承中的访问控制 252
63.1 公有继承 252
63.2私有继承 254
63.3保护继承 256
6.4成员覆盖与作用域分辨 257
6.5继承中对象的初始化与清除 259
6.5.1初始化和清除 260
6.5.2构造函数和析构函数的调用顺序 262
第8章动态组合对象类 352
8.1数据结构组合类的引入 352
8.2动态数组类 353
8.3动态线性链表类 355
9.1.2流类及流类间的关系 390
9.1.1流类简介 390
第9章输入输出流类 390
9.1流类层次结构 390
9.2从标准输入/输出流中读/写数据 393
9.2.1从标准输入获取数据 394
9.2.2将数据写入标准输出 399
9.3 顺序文件的输入/输出 403
9.3.1文件的打开与关闭 403
9.3.2将数据写入文件 405
9.3.3从文件中读取数据 407
9.4文件的随机读取 413
9.4.1文件的读取指针 413
9.4.2随机读取数据文件 414
9.4.3从串流中读取数据 416
9.4.4 自定义输入运算符 417
9.5文件的随机写入 419
9.5.1文件的写指针 419
9.5.2随机写 420
9.5.3将数据写入串流 423
9.5.4输出运算符重载 424
9.6 二进制文件的读取 426
9.7小结 429
9.8习题 429
第10章异常处理机制 435
10.1 基本概念 435
10.2 C++中的异常处理机制 436
10.2.1 异常处理的语法格式 437
10.2.2 int型异常信息值的抛掷与捕获 438
10.2.3 C++异常处理机制的执行过程 442
10.2.4异常事件定义与异常接口声明 442
10.3异常处理的规则 444
10.4处理异常事件类 445
10.6习题 450
10.5小结 450
第11章统一建模语言UML 451
11.1 UML简介 451
11.1.1 UML发展历史 451
11.1.2 UML描述软件的体系结构 452
11.13 UML模型基本图标元素 453
1 12 UML模型图 454
11.2.1用例模型图 454
1 1.2.2静态结构模型图 455
11.2.3动态行为模型图 458
113 UML系统模型结构 462
113.1 子系统的组织结构 462
11.3.2系统模型的组织结构 463
11.3.3系统结构层次 464
11.4 UML的公共机制 464
1 1.5UML的扩展机制 467
11.5.1 构造型 467
1 1.5.3约束 468
1 1.5.2标记值 468
11.6 UML软件开发过程 470
11.6.1项目开发的阶段 471
11.6.2 UML开发过程中的成分 473
11.6.3UML软件开发过程的产物 475
11.6.4 UML软件开发过程的特征 477
11.7小结 478
11.8习题 479
12.1引言 481
第12章设计样式与综合案例 481
12.2对象类的关联 483
1221 关联 483
1222聚集 488
12.2.3继承 489
12.2.4依赖和细化 491
12.3接口 491
12.4.1设计样式的特征 493
12.4通用对象设计样式 493
12.4.2几个简单的设计样式 494
12.4.3通用接口设计样式 498
12.4.4 设计样式的描述与调用 501
12.5包与子系统 502
12.5.1包 502
12.5.2包的嵌套 503
12.5.3包之间的关系 504
12.6案例分析 505
12.6.1建立系统用例模型 505
12.6.2对象类建模 507
12.6.3动态交互行为建模 512
12.6.4动态活动状态建模 514
12.6.5物理体系结构建模 518
12.7小结 520
12.8习题 521
附录Visual C++6.0编程环境简介 522