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

  • 购买积分:16 如何计算积分?
  • 作  者:甘玲,石岩,李盘林编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2008
  • ISBN:7302165297
  • 页数:517 页
图书介绍:本书介绍C++语言面向对象的特征,设计思想和编程方法。

第1篇 引导篇 3

第1章 认识对象 3

1.1 问题的抽象 3

1.1.1 以功能为中心的抽象 3

1.1.2 以对象为中心的抽象 4

1.2 一切事物皆是对象 5

1.2.1 对象 5

1.2.2 类 6

1.2.3 属性、操作和方法 6

1.3 面向对象技术概述 7

1.3.1 面向对象的基本特征 7

1.3.2 面向对象的软件开发方法 10

1.3.3 面向对象的UML描述 11

1.4 C++简介 16

1.4.1 从C到C++ 17

1.4.2 简单的C++程序 18

1.4.3 C++程序结构 20

1.4.4 C++程序的上机过程 25

本章小结 26

习题1 27

第2篇 基础篇 31

第2章 发现对象和设计类 31

2.1 时钟问题 31

2.1.1 提出问题 31

2.1.2 分析问题 31

2.2 发现对象 32

2.2.1 定义属性 34

2.2.2 定义行为 36

2.3 设计类 37

2.3.1 定义类 37

2.3.2 访问权限控制 40

2.3.3 成员函数的实现方式 42

2.3.4 内联函数 44

2.4 创建对象 47

2.4.1 对象的定义(解决问题) 48

2.4.2 类成员的访问 50

2.4.3 构造函数 56

2.4.4 构造函数的重载 64

2.4.5 带默认参数的构造函数 71

2.4.6 析构函数 74

2.4.7 构造函数和析构函数的调用顺序 80

2.4.8 复制构造函数 83

2.5 对象间的数据共享问题 94

2.5.1 类的静态数据成员 94

2.5.2 静态成员的定义 95

2.5.3 静态数据成员的初始化 97

2.5.4 静态数据成员的使用 100

2.5.5 静态成员函数 102

2.6 举一反三 105

本章小结 111

常见错误 112

习题2 112

第3章 详解对象 120

3.1 多个同类对象信息管理的问题 120

3.1.1 提出问题 120

3.1.2 分析问题 120

3.2 对象的存储 121

3.2.1 变量的作用域 121

3.2.2 变量的生存期 123

3.2.3 动态内存分配 128

3.2.4 动态对象 133

3.2.5 名字空间 135

3.3 对象指针 137

3.3.1 对象指针的定义 137

3.3.2 对象指针的初始化 138

3.3.3 通过指针访问对象成员 139

3.3.4 解析应用实例 143

3.3.5 this指针 149

3.3.6 成员指针 153

3.4 对象引用 156

3.4.1 引用的概念 157

3.4.2 引用的定义 157

3.4.3 引用的作用 160

3.5 共享数据的保护 164

3.5.1 常量 164

3.5.2 const与指针 165

3.5.3 常引用 166

3.5.4 常对象 166

3.5.5 类的常成员 168

3.6 对象数组 171

3.6.1 数组的声明及使用 172

3.6.2 数组的初始化 173

3.6.3 对象数组 173

3.7 字符串对象 178

3.7.1 用字符数组存储和处理字符串 178

3.7.2 string类 179

3.8 对象成员 183

3.8.1 类的聚集与组合 183

3.8.2 对象成员的初始化 186

3.8.3 对象成员数组 187

3.9 解决问题 189

3.10 举一反三 191

本章小结 203

常见错误 204

习题3 205

第4章 派生新类 209

4.1 类层次的问题 209

4.1.1 提出问题 210

4.1.2 分析问题 210

4.2 派生与继承 211

4.2.1 派生 211

4.2.2 继承 211

4.2.3 访问控制 212

4.3 派生类 212

4.3.1 派生类定义 212

4.3.2 派生类成员的构成 213

4.3.3 派生后访问权限控制 213

4.3.4 派生类的构造函数和析构函数 219

4.4 多继承与虚拟继承 227

4.4.1 多继承派生类的定义 227

4.4.2 多继承派生类的构造函数 228

4.4.3 虚拟继承与虚基类 232

4.5 解决问题 242

4.6 举一反三 245

本章小结 249

常见错误 250

习题4 250

第5章 多态与抽象类 257

5.1 类层次的多态问题 257

5.1.1 提出问题 257

5.1.2 分析问题 257

5.2 类型兼容规则 258

5.3 多态的概念 262

5.4 多态的分类 262

5.5 联编 263

5.5.1 静态联编 263

5.5.2 动态联编 264

5.6 虚函数 265

5.6.1 虚函数的声明 265

5.6.2 虚函数的使用 265

5.6.3 虚函数表 270

5.6.4 虚析构函数 272

5.7 抽象类和纯虚函数 275

5.7.1 抽象类 275

5.7.2 纯虚函数 275

5.8 解决问题 279

5.9 举一反三 284

本章小结 291

常见错误 292

习题5 292

第6章 运算符重载与友元 295

6.1 复数的加减运算问题 295

6.1.1 提出问题 295

6.1.2 分析问题 295

6.2 运算符重载 297

6.2.1 运算符重载的定义 297

6.2.2 运算符重载的规则 302

6.3 友元 303

6.3.1 友元的作用 303

6.3.2 友元的定义 304

6.4 运算符重载的使用 310

6.4.1 运算符重载为成员函数 311

6.4.2 运算符重载为友元函数 316

6.5 解决问题 318

6.6 举一反三 320

本章小结 326

常见错误 327

习题6 327

第7章 模板——类的再抽象 330

7.1 标准模板库的设计问题 330

7.1.1 提出问题 330

7.1.2 分析问题 330

7.2 模板的概念 332

7.3 函数模板 332

7.3.1 函数模板的定义 332

7.3.2 模板函数的生成 333

7.4 类模板 334

7.4.1 类模板的定义 334

7.4.2 类模板的使用 335

7.5 解决问题 337

7.6 STL简介 341

7.6.1 STL与C++ 341

7.6.2 STL与C++标准函数库 341

7.6.3 使用STL 344

7.7 举一反三 352

本章小结 355

常见错误 355

习题7 355

第8章 输入/输出流对象 358

8.1 螺旋矩阵的输入/输出问题 358

8.1.1 提出问题 358

8.1.2 分析问题 359

8.2 流 360

8.2.1 流的概念 360

8.2.2 I/O流 360

8.2.3 I/O流类库的层次结构 360

8.2.4 I/O流类库的头文件 361

8.2.5 标准输入/输出流对象 362

8.3 无格式输入/输出 363

8.4 输入/输出的格式控制 364

8.4.1 用ios类成员函数格式化 364

8.4.2 用操作符函数格式化 369

8.5 解决问题 374

8.6 自定义类型对象的输入/输出 377

8.7 文件的输入/输出问题 379

8.7.1 提出问题 379

8.7.2 分析问题 379

8.7.3 文件的打开和关闭 380

8.7.4 解决问题 381

8.8 举一反三 384

本章小结 389

常见错误 389

习题8 390

第9章 异常处理 393

9.1 程序中潜在的异常问题 393

9.1.1 提出问题 393

9.1.2 分析问题 396

9.2 异常处理机制 396

9.2.1 传统的异常处理方法 396

9.2.2 系统层次异常处理的标准设施 397

9.3 C++中的异常处理机制 397

9.3.1 异常的抛出、检测和捕获 397

9.3.2 解决问题 399

9.3.3 异常在多层模块间的传递 401

9.3.4 异常接口声明 403

9.3.5 异常处理中析构函数的调用 404

9.3.6 异常类的层次结构 405

9.4 标准异常 408

9.5 使用异常处理应注意的几个问题 411

9.6 举一反三 414

本章小结 417

常见错误 147

习题9 417

第10章 C++面向对象程序设计 419

10.1 实用开发基础 419

10.1.1 工程文件 419

10.1.2 分块开发 419

10.2 设计类和对象 420

10.2.1 正确使用抽象 421

10.2.2 发现对象并建立对象层 421

10.2.3 定义数据成员和成员函数 422

10.2.4 设计类的原则 423

10.2.5 如何发现基类和派生类结构 424

10.3 主函数设计 425

第3篇 应用篇 429

第11章 案例解析 429

11.1 案例1 数学计算 429

11.2 案例2 大学物理不确定度计算 433

11.3 案例3 STL的应用和泛型编程 439

11.4 案例4 Windows应用程序设计 445

11.5 案例5 网络编程 449

11.6 案例6 编译程序设计 458

附录A C++语法摘要 477

A.1 词法规则 477

A.1.1 标识符 477

A.1.2 关键字 477

A.1.3 常量 477

A.1.4 变量 479

A.1.5 语句 479

A.1.6 注释 479

A.2 数据类型 479

A.2.1 基本数据类型 479

A.2.2 构造数据类型 480

A.2.3 数据类型转换 480

A.3 运算符 480

A.4 表达式 481

A.5 语句 482

A.5.1 带标号语句 482

A.5.2 表达式语句 482

A.5.3 复合语句 482

A.5.4 函数调用语句 483

A.5.5 控制语句 483

A.6 与OOP有关的关键字 485

A.7 与OOP有关的语法 485

A.7.1 类的定义 485

A.7.2 成员函数的定义 486

A.7.3 对象 486

A.7.4 构造函数和析构函数 486

A.7.5 复制构造函数 487

A.7.6 类的继承 487

A.7.7 虚基类 488

A.7.8 虚函数 488

A.8 友元函数与友元类 489

A.9 运算符重载 489

A.10 类模板 490

A.11 函数模板 490

A.12 异常处理 490

附录B C++标准库简介 492

B.1 标准头文件的包含 492

B.2 标准库的组成 492

B.3 常用标准头文件及其主要内容介绍 494

B.3.1 泛型算法简介 494

B.3.2 容器简介 497

B.3.3 迭代器简介 497

B.3.4 I/O流库简介 498

B.3.5 string类简介 499

附录C Visual C++开发环境概述 501

C.1 开发环境简介 501

C.2 开发环境的菜单功能 503

C.3 开发环境的工具栏 506

C.4 项目和项目工作区 507

附录D 调试方法简介 509

D.1 修正语法错误 509

D.2 设置断点 510

D.3 启用和终止调试器 510

D.4 控制程序运行 511

D.5 使用QuickWatch窗口查看和修改变量的值 511

D.6 Watch窗口的使用 512

D.7 Variables窗口的使用 513

附录E C++常见错误 514

参考文献 517