《C++面向对象程序设计》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:安国双编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2011
  • ISBN:711135527X
  • 页数:331 页
图书介绍:本书从学习和使用并重的角度叙述了面向对象的编程方法,包括C++基础、面向对象编程思想、类型以及类层次结构4个主要部分,涵盖了类型分析、类对象、运算符重载、内存布局、类型转化和虚拟机制等面向对象的编程知识。通过对书中具体内容的学习,可以使读者在短时间内快速提高自己的编程能力。特别是书中的代码示例都是经过作者精心选择和设计的,可以为读者带来实际工作中的第一手资料。

第1章 C++基础 1

1.1 C++概述 2

1.1.1 程序 2

1.1.2 预处理指令 3

1.1.3 输入与输出 4

1.1.4 C++编程思想 6

1.1.5 基于对象的程序设计 6

1.1.6 面向对象的程序设计 7

1.2 控制语句 9

1.2.1 分支 9

1.2.2 循环 12

1.2.3 跳转 14

1.3 数据类型 15

1.3.1 基本数据类型 15

1.3.2 文字量 17

1.3.3 枚举 19

1.3.4 结构体 20

1.3.5 共用体 22

1.4 指针和数组 23

1.4.1 内存开辟 23

1.4.2 void指针 25

1.4.3 空指针 26

1.4.4 多级指针 26

1.4.5 指针数组 28

1.4.6 数组指针 28

1.5 函数 29

1.5.1 传值与传引用 29

1.5.2 传指针与传数组 30

1.5.3 默认和可变参数 31

1.5.4 返回值 33

1.5.5 函数和指针 33

1.6 思考与练习 35

第2章 认识类 36

2.1 类的来源 37

2.2 类有哪些成员 38

2.3 类可以出现的位置 42

2.4 类的极限形式 45

2.5 类和结构体的区别 53

2.6 类型的演进 54

2.7 类的路线图 54

2.8 思考与练习 57

第3章 认识类的思想 58

3.1 类的封装性 58

3.2 类的继承性 61

3.3 类的多态性 64

3.3.1 编译时多态性 64

3.3.2 运行时多态性 67

3.4 思考与练习 68

第4章 对象 69

4.1 构造函数 70

4.1.1 重载构造函数 75

4.1.2 默认构造函数 75

4.1.3 复制构造函数 78

4.1.4 转化构造函数 80

4.1.5 显式构造函数 82

4.1.6 区分构造形式 83

4.2 析构函数 85

4.3 静态成员 88

4.3.1 静态成员函数 88

4.3.2 静态数据成员 92

4.4 常量成员 100

4.4.1 常量成员函数 100

4.4.2 常量数据成员 100

4.4.3 常量和非常量的区别 101

4.5 静态与常量成员 102

4.6 内联函数和友元函数 103

4.6.1 内联函数 103

4.6.2 友元函数与友元类 106

4.7 对象数组 109

4.8 创建特殊对象 111

4.9 思考与练习 113

第5章 运算符重载 114

5.1 可重载的运算符 115

5.2 重载的原则 115

5.3 定义新运算符 116

5.4 运算符的原有语义 117

5.5 对象或全局函数 120

5.6 运算符的参数 123

5.7 独立和复合运算符 126

5.8 赋值运算符不参与继承 126

5.9 重载运算符的限定 128

5.10 改变运算符的可见性 130

5.11 相等 132

5.12 赋值 134

5.13 下标 136

5.14 函数调用 138

5.15 类型转化 141

5.16 增量和减量 142

5.17 分配和释放 144

5.18 思考与练习 146

第6章 完整的String类 147

6.1 引言 148

6.2 确定目标 148

6.3 设计接口 148

6.4 定义接口 149

6.5 字符串的创建 151

6.6 字符串的销毁 155

6.7 字符串与字符数组 155

6.8 安全数据 156

6.9 赋值、下标和其他 157

6.10 算法 158

6.11 提取 161

6.12 大小和容量 164

6.13 比较 164

6.14 输入和输出 166

6.15 异常处理 166

6.16 简单的应用 167

6.17 思考与练习 169

第7章 继承 170

7.1 可能的继承方式 171

7.2 看待各种继承 173

7.3 类和结构体彼此继承 173

7.4 认识虚拟继承 175

7.5 使用空类型 177

7.6 “共同”的使用 179

7.7 继承中的构造和析构 181

7.7.1 构造函数的调用顺序 181

7.7.2 析构函数的调用顺序 185

7.7.3 虚拟继承对象的构造 185

7.8 思考与练习 186

第8章 内存布局 187

8.1 要解决的问题 188

8.2 内存有哪些成员 188

8.3 各种内存布局 190

8.3.1 独立类型 190

8.3.2 单继承 192

8.3.3 多继承 193

8.3.4 有共同基类的继承 195

8.3.5 虚拟继承 197

8.3.6 虚函数表指针的存储 200

8.4 基类的连续性 202

8.5 空类的大小 203

8.6 内存的膨胀 203

8.7 思考与练习 206

第9章 类型转化 208

9.1 对象类型向上转化 209

9.1.1 单继承与多继承 209

9.1.2 有共同基类的继承 210

9.2 对象类型向下转化 211

9.2.1 单继承 211

9.2.2 多继承 212

9.2.3 有共同基类的继承 214

9.3 指针类型转化 215

9.4 指针类型向上转化 216

9.4.1 单继承与多继承 216

9.4.2 有共同基类的继承 217

9.5 指针类型向下转化 218

9.5.1 单继承 218

9.5.2 多继承 220

9.5.3 有共同基类的继承 221

9.6 思考与练习 222

第10章 虚拟机制 224

10.1 虚函数的声明 225

10.2 虚函数的调用 225

10.3 抽象类 227

10.3.1 抽象类的数据成员 228

10.3.2 抽象类的局部派生 229

10.3.3 抽象类作为派生类 229

10.4 虚析构函数 230

10.5 虚函数与虚拟继承 231

10.6 虚函数表指针与类型 232

10.7 虚函数表项未必相同 232

10.8 思考与练习 233

第11章 完整的MiniDataSet类层次结构 235

11.1 引言 236

11.2 确定目标 236

11.3 继承与组合 238

11.4 继承类型和数据封装 240

11.5 层次结构图 242

11.6 定义接口 243

11.7 实现接口 249

11.7.1 BaseData接口 249

11.7.2 KeyData接口 249

11.7.3 ValueData接口 250

11.7.4 DicEle接口 251

11.7.5 Dictionary接口 253

11.7.6 NamedDic接口 256

11.7.7 NamedDicSet接口 256

11.7.8 MiniHeader接口 260

11.7.9 MiniTable接口 261

11.8 包容性扩展 262

11.9 简单的应用 263

11.10 思考与练习 266

第12章 综合设计与实现 267

12.1 逐步求精类型的设计 268

12.1.1 设计需求 268

12.1.2 基本表示 268

12.1.3 存储结构化 271

12.1.4 改善内部表示 273

12.1.5 拓展类型的能力 282

12.1.6 设计总结 285

12.2 受限制类型的设计 285

12.2.1 设计需求 286

12.2.2 限制函数的返回 286

12.2.3 限制函数的参数 287

12.2.4 设计总结 289

12.3 扩展容器类型的设计 290

12.3.1 设计需求 290

12.3.2 一对多的映射 290

12.3.3 多对多的映射 291

12.3.4 设计总结 293

12.4 函数组类型的设计 293

12.4.1 设计需求 293

12.4.2 构造式设计 293

12.4.3 运算符式设计 298

12.4.4 设计总结 300

12.5 跳跃数组类型的设计 300

12.5.1 设计需求 300

12.5.2 元素类型的设计 301

12.5.3 包含类型的实现 305

12.5.4 扩展包含类型的接口 307

12.5.5 增强包含类型的存储 309

12.5.6 设计总结 312

12.6 可替换类型的设计 312

12.6.1 设计需求 312

12.6.2 替换分隔式数组 313

12.6.3 替换仅含数据的结构体 316

12.6.4 替换类对象数组 318

12.6.5 替换函数指针数组 319

12.6.6 设计总结 321

12.7 统一输入输出类型的设计 321

12.7.1 设计需求 321

12.7.2 输出的原子动作 321

12.7.3 统一的文件输出 324

12.7.4 统一的网络输出 325

12.7.5 统一的数据输出 327

12.7.6 设计总结 329

12.8 思考与练习 329

附录 常用英文术语 330

参考文献 331