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

  • 购买积分:13 如何计算积分?
  • 作  者:龚晓庆,付丽娜,朱新懿编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2011
  • ISBN:9787302244653
  • 页数:351 页
图书介绍:本书在面向对象概念的基础上,介绍用C++程序设计语言编写的面向对象程序的方法和过程。

第1章面向对象基础 1

1.1程序设计范型 1

1.2程序设计与抽象的过程 2

1.3面向对象的基本概念 3

1.3.1封装 3

1.3.2对象和类 4

1.3.3接口、实现和消息传递 5

1.3.4信息/实现隐藏 7

1.3.5继承 7

1.3.6多态性 9

1.4面向对象程序的特点 11

1.5面向对象方法发展简史 12

1.6小结 13

1.7习题 13

第2章C++语言概览 15

2.1C++语言的特点 15

2.1.1C++的设计目标 15

2.1.2C++与C 16

2.2第一个C++程序 17

2.3C++与过程式程序设计 18

2.3.1函数 19

2.3.2名字空间(namespace) 19

2.4C++与基于对象的程序设计 20

2.5C++与面向对象程序设计 22

2.5.1类和对象 22

2.5.2继承 22

2.5.3虚函数和多态性 23

2.6C++与泛型程序设计 24

2.7异常处理 24

2.8C++程序的结构和编译 25

2.8.1程序结构 25

2.8.2分段编译 27

2.9C++开发工具 28

2.10小结 35

2.11习题 36

第3章C++基本语法 37

3.1数据类型 37

3.1.1内置数据类型 37

3.1.2指针 38

3.1.3引用 40

3.1.4数组 42

3.1.5结构体 43

3.1.6联合(共用体) 45

3.1.7枚举 45

3.1.8类类型 46

3.2常量和变量 49

3.2.1内置数据类型的文字常量 49

3.2.2变量和标识符 50

3.2.3const限定词 52

3.2.4volatile限定词 57

3.3运算符和表达式 57

3.3.1算术运算符 58

3.3.2关系和逻辑运算符 58

3.3.3赋值运算符 58

3.3.4自增和自减 59

3.3.5位运算符 60

3.3.6sizeof运算符 60

3.3.7new和delete 61

3.3.8条件运算符 63

3.3.9逗号运算符 64

3.3.10运算符的优先级 64

3.3.11类型转换 64

3.4语句 67

3.4.1简单语句和复合语句 67

3.4.2声明语句 67

3.4.3if语句 68

3.4.4switch语句 69

3.4.5while语句 71

3.4.6for语句 72

3.4.7dowhile语句 72

3.4.8break和continue 73

3.4.9goto语句 74

3.5小结 75

3.6习题 75

3.6.1课后练习 75

3.6.2常见面试题 77

第4章函数 80

4.1函数的基本概念 80

4.1.1函数定义 80

4.1.2函数的调用和返回 81

4.1.3函数声明 92

4.1.4递归函数 93

4.2inline函数 93

4.2.1函数与带参数的宏 93

4.2.2语法和概念 94

4.3缺省函数参数 94

4.3.1如何使函数调用更简便 94

4.3.2语法和概念 95

4.4重载函数 95

4.4.1为一组表达相同概念的函数命名 95

4.4.2语法和概念 96

4.4.3重载函数解析 97

4.4.4重载函数和缺省参数函数 101

4.5链接指示符:extern“C” 101

4.6函数指针 102

4.6.1定义函数指针 102

4.6.2使用函数指针 102

4.6.3函数指针的数组 103

4.7名字空间 104

4.7.1全局名字冲突 104

4.7.2名字空间的定义 104

4.7.3名字空间成员的使用 106

4.7.4标准名字空间std 107

4.8作用域和存储期 109

4.8.1作用域(Scope) 109

4.8.2存储期(Storage Duration) 114

4.9程序代码组织 115

4.9.1声明和头文件包含 116

4.9.2函数代码的组织 117

4.9.3名字空间的代码组织 117

4.10设计高质量的函数 118

4.10.1创建函数的理由 118

4.10.2函数的命名 119

4.10.3如何使用函数的参数 120

4.10.4设置函数的返回值 120

4.11小结 121

4.12习题 121

4.12.1课后练习 121

4.12.2常见面试题 124

第5章 类和对象 125

5.1类的定义 125

5.1.1基本语言定义的ADT 125

5.1.2数据成员与成员函数 127

5.1.3访问限定和信息隐藏 130

5.1.4类和对象 133

5.1.5 this指针 134

5.1.6访问器函数 136

5.1.7友元 136

5.1.8句柄类——进一步的信息隐藏 138

5.2对象的创建与销毁 141

5.2.1构造函数 142

5.2.2析构函数 149

5.2.3构造函数和析构函数的调用 151

5.3类设计的例子 151

5.3.1类的设计 152

5.3.2类的UML表示法 152

5.3.3动态字符栈类 153

5.3.4字符串类 154

5.3.5单链表类 157

5.4 const成员 160

5.4.1 const数据成员 160

5.4.2 const成员函数 160

5.4.3 mutable成员 163

5.4.4 const用法小结 164

5.5 static成员 165

5.5.1 static数据成员 166

5.5.2 static成员函数 168

5.5.3单件模式(Singleton) 168

5.5.4 static用法小结 169

5.6指向成员的指针 170

5.6.1数据成员的指针 170

5.6.2成员函数的指针 171

5.7类代码的组织 173

5.8小结 174

5.9习题 174

5.9.1课后练习 174

5.9.2常见面试题 179

第6章 运算符重载 180

6.1运算符重载的基本语法 180

6.1.1运算符函数 181

6.1.2运算符重载的限制 182

6.2常用运算符的重载 182

6.2.1一元运算符 183

6.2.2二元运算符 186

6.2.3运算符函数的参数和返回类型 190

6.2.4全局运算符和成员运算符 190

6.2.5重载输入/输出运算符 191

6.3重载赋值运算符 193

6.3.1自赋值检测 193

6.3.2引用计数和写拷贝 196

6.3.3自动创建的operator= 199

6.3.4编译器自动生成的成员函数 199

6.4重载下标运算符 200

6.5用户定义的类型转换 202

6.5.1类型转换运算符 202

6.5.2自动类型转换可能引起的二义性问题 204

6.6小结 205

6.7习题 206

6.7.1课后练习 206

6.7.2常见面试题 207

第7章 包含与继承 208

7.1包含——复用类的实现 208

7.1.1对象成员 209

7.1.2对象成员的初始化 211

7.1.3包含的进一步讨论 212

7.2继承——复用类的接口 215

7.2.1继承的语法 215

7.2.2基类成员在派生类中的可见性 216

7.2.3公有继承和私有继承 220

7.2.4派生类对象的创建和撤销 222

7.2.5派生类对基类的修改 225

7.2.6替代原则——向上类型转换 230

7.2.7不能自动继承的成员 233

7.3多重继承 233

7.3.1多重继承的二义性 235

7.3.2虚基类 236

7.4包含与继承的选择 237

7.4.1包含的应用 238

7.4.2继承的应用 240

7.5小结 242

7.6习题 243

7.6.1课后练习 243

7.6.2常见面试题 246

第8章 虚函数与多态性 248

8.1向上类型转换 248

8.2虚函数 250

8.2.1函数调用绑定 250

8.2.2虚函数 250

8.2.3虚函数的相关规则 253

8.2.4实现多态性的步骤 255

8.2.5动态绑定的实现 257

8.3抽象类 261

8.4 RTTI 264

8.4.1 dynamic cast与向下类型转换 264

8.4.2 typeid 267

8.5类层次设计的例子 268

8.5.1模仿钓鱼的例子 268

8.5.2零件库存管理的例子 271

8.6小结 276

8.7习题 276

8.7.1课后练习 276

8.7.2常见面试题 278

第9章 模板 280

9.1函数模板 280

9.1.1函数模板的定义 280

9.1.2函数模板的实例化 282

9.1.3函数模板的重载 284

9.2类模板 285

9.2.1类模板的定义 286

9.2.2类模板的实例化 287

9.2.3类模板的成员函数 287

9.2.4模板的非类型参数 288

9.2.5类模板的静态数据成员 289

9.2.6类模板的友元 289

9.3模板的编译模式 290

9.3.1包含编译模式 290

9.3.2分离编译模式 293

9.4模板和代码复用 295

9.5小结 295

9.6习题 296

9.6.1课后练习 296

9.6.2常见面试题 296

第10章 异常处理 297

10.1抛出异常 297

10.2 try块 299

10.3捕获异常 302

10.3.1异常对象 303

10.3.2异常处理流程 304

10.3.3重新抛出异常 305

10.3.4捕获所有异常 306

10.3.5程序终止 306

10.4异常规范 307

10.5异常类层次 308

10.5.1定义异常类型 308

10.5.2异常对象和虚函数 310

10.5.3处理类类型的异常 311

10.5.4 C++标准库的异常类层次 311

10.6异常和错误处理技术 312

10.6.1输入数据检验 312

10.6.2断言 313

10.6.3错误处理技术 314

10.6.4异常的使用 315

10.7小结 316

10.8习题 316

10.8.1课后练习 316

10.8.2常见面试题 318

第11章 输入/输出流 319

11.1输入/输出流类层次 319

11.2终端输入/输出 320

11.2.1基本输入/输出 320

11.2.2其他输入/输出操作 321

11.2.3操纵符 324

11.3文件输入/输出 325

11.4字符串流 329

11.5小结 331

11.6习题 331

11.6.1课后练习 331

11.6.2常见面试题 332

第12章 标准模板库 333

12.1 STL概览 333

12.2顺序容器 335

12.2.1容器对象的定义 335

12.2.2容器的操作 335

12.3迭代器 337

12.3.1迭代器的运算 337

12.3.2与迭代器有关的容器操作 339

12.4关联容器 341

12.4.1 map 341

12.4.2 set 342

12.5泛型算法 343

12.5.1查找 343

12.5.2排序 343

12.6小结 344

12.7习题 345

12.7.1课后练习 345

12.7.2常见面试题 345

附录A 346

参考文献 351