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

  • 购买积分:11 如何计算积分?
  • 作  者:谭浩强编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2006
  • ISBN:7302123152
  • 页数:289 页
图书介绍:本书作者深入调查了我国大学的程序设计课程的现状和发展趋势,参阅了国内外数十种C++的教材,认真分析了学习者在学习过程中遇到的困难,研究了初学者的认识规律。本书做到准确定位,合理取舍内容,设计了读者易于学习的教材体系,并且以通俗易懂的语言化解了许多复杂的概念,大大减少了初学者学习C++的困难。本书是为己有C语言基础的读者编写的,主要介绍面向对象程序设计的知识和方法。本书内容全面,例题丰富,概念清晰,循序渐进,易于学习。本书是依据ANSI C++标准进行介绍的,引导读乾从一开始就按标准C++的规定编程。本书配有两本辅导教材:《C++程序设计题解与上机指导》和《C++程序设计实践指导》。

目录 1

第1章 C++的初步知识 1

1.1 从C到C++ 1

1.2 最简单的C++程序 2

1.3 C++对C的扩充 8

1.3.1 C++的输入输出 8

1.3.2 用const定义常变量 11

1.3.3 函数原型声明 11

1.3.4 函数的重载 12

1.3.5 函数模块 14

1.3.6 有默认参数的函数 16

1.3.7 变量的引用 17

1.3.8 内置函数 23

1.3.9 作用域运算符 25

1.3.10 字符串变量 26

1.3.11 动态分配/撤销内存的运算符new和delete 29

1.3.12 小结 30

1.4 C++程序的编写和实现 31

1.5 关于C++上机实践 33

习题 33

2.1.1 什么是面向对象的程序设计 37

第2章 类和对象 37

2.1 面向对象程序设计方法概述 37

2.1.2 面向对象程序设计的特点 40

2.1.3 类和对象的作用 41

2.1.4 面向对象的软件开发 42

2.2 类的声明和对象的定义 44

2.2.1 类和对象的关系 44

2.2.2 声明类类型 44

2.2.3 定义对象的方法 46

2.2.4 类和结构体类型的异同 48

2.3.1 成员函数的性质 49

2.3 类的成员函数 49

2.3.2 在类外定义成员函数 50

2.3.3 inline成员函数 51

2.3.4 成员函数的存储方式 52

2.4 对象成员的引用 54

2.4.1 通过对象名和成员运算符访问对象中的成员 54

2.4.2 通过指向对象的指针访问对象中的成员 55

2.4.3 通过对象的引用来访问对象中的成员 55

2.5 类和对象的简单应用举例 55

2.6.1 公用接口与私有实现的分离 62

2.6 类的封装性和信息隐蔽 62

2.6.2 类声明和成员函数定义的分离 64

2.6.3 面向对象程序设计中的几个名词 66

习题 67

第3章 关于类和对象的进一步讨论 69

3.1 构造函数 69

3.1.1 对象的初始化 69

3.1.2 构造函数的作用 70

3.1.3 带参数的构造函数 72

3.1.5 构造函数的重载 73

3.1.4 用参数初始化表对数据成员初始化 73

3.1.6 使用默认参数的构造函数 75

3.2 析构函数 78

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

3.4 对象数组 81

3.5 对象指针 83

3.5.1 指向对象的指针 83

3.5.2 指向对象成员的指针 84

3.5.3 this指针 87

3.6 共用数据的保护 88

3.6.1 常对象 89

3.6.2 常对象成员 90

3.6.3 指向对象的常指针 91

3.6.4 指向常对象的指针变量 91

3.6.5 对象的常引用 95

3.6.6 const型数据的小结 96

3.7 对象的动态建立和释放 96

3.8 对象的赋值和复制 97

3.8.1 对象的赋值 97

3.8.2 对象的复制 99

3.9 静态成员 101

3.9.1 静态数据成员 102

3.9.2 静态成员函数 104

3.10 友元 107

3.10.1 友元函数 107

3.10.2 友元类 111

3.11 类模板 112

习题 116

第4章 运算符重载 120

4.1 什么是运算符重载 120

4.2 运算符重载的方法 122

4.3 重载运算符的规则 124

4.4 运算符重载函数作为类成员函数和友元函数 127

4.5 重载双目运算符 129

4.6 重载单目运算符 134

4.7 重载流插入运算符和流提取运算符 137

4.7.1 重载流插入运算符“<<” 137

4.7.2 重载流提取运算符“>>” 139

4.8 不同类型数据间的转换 141

4.8.1 标准类型数据间的转换 141

4.8.2 转换构造函数 142

4.8.3 类型转换函数 144

习题 149

5.1 继承与派生的概念 150

第5章 继承与派生 150

5.2 派生类的声明方式 153

5.3 派生类的构成 154

5.4 派生类成员的访问属性 155

5.4.1 公用继承 156

5.4.2 私有继承 158

5.4.3 保护成员和保护继承 161

5.4.4 多级派生时的访问属性 164

5.5 派生类的构造函数和析构函数 166

5.5.1 简单的派生类的构造函数 166

5.5.2 有子对象的派生类的构造函数 169

5.5.3 多层派生时的构造函数 172

5.5.4 派生类构造函数的特殊形式 175

5.5.5 派生类的析构函数 175

5.6 多重继承 176

5.6.1 声明多重继承的方法 176

5.6.2 多重继承派生类的构造函数 176

5.6.3 多重继承引起的二义性问题 179

5.6.4 虚基类 182

5.7 基类与派生类的转换 187

5.8 继承与组合 191

5.9 继承在软件开发中的重要意义 192

习题 193

第6章 多态性与虚函数 198

6.1 多态性的概念 198

6.2 一个典型的例子 199

6.3 虚函数 204

6.3.1 虚函数的作用 204

6.3.2 静态关联与动态关联 208

6.3.3 在什么情况下应当声明虚函数 209

6.3.4 虚析构函数 210

6.4.1 纯虚函数 211

6.4 纯虚函数与抽象类 211

6.4.2 抽象类 212

6.4.3 应用实例 213

习题 219

第7章 输入输出流 220

7.1 C++的输入和输出 220

7.1.1 输入输出的含义 220

7.1.2 C++的I/O对C的发展——类型安全和可扩展性 220

7.1.3 C++的输入输出流 221

7.2.1 cout,cerr和clog流 225

7.2 标准输出流 225

7.2.2 格式输出 228

7.2.3 用流成员函数put输出字符 232

7.3 标准输入流 233

7.3.1 cin流 233

7.3.2 用于字符输入的流成员函数 235

7.3.3 istream类的其他成员函数 239

7.4 文件操作与文件流 242

7.4.1 文件的概念 242

7.4.2 文件流类与文件流对象 243

7.4.3 文件的打开与关闭 244

7.4.4 对ASCII文件的操作 246

7.4.5 对二进制文件的操作 251

7.5 字符串流 256

习题 261

第8章 C++工具 262

8.1 异常处理 262

8.1.1 异常处理的任务 262

8.1.2 异常处理的方法 263

8.1.3 在函数声明中进行异常情况指定 270

8.1.4 在异常处理中处理析构函数 270

8.2 命名空间 272

8.2.1 为什么需要命名空间 273

8.2.2 什么是命名空间 276

8.2.3 使用命名空间解决名字冲突 278

8.2.4 使用命名空间成员的方法 280

8.2.5 无名的命名空间 282

8.2.6 标准命名空间std 282

8.3 使用早期的函数库 283

习题 284

附录A 常用字符与ASCII代码对照表 286

附录B 运算符与结合性 287

参考文献 289