《C++程序设计教程 设计思想与实现 修订版》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:钱能著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2009
  • ISBN:9787302201854
  • 页数:467 页
图书介绍:本书共分两大部分。第一部分,第1章至第10章是基础部分,主要介绍C++程序设计语言、程序结构和过程化基础。第二部分,第11章至第21章,是面向对象程序设计部分,它建立在C++程序设计基础之上,讲述了面向对象程序设计方法。

第一部分 C++过程化语言基础 1

第1章 C++入门 1

1.1从C到C++ 1

1.2程序与语言 2

1.3结构化程序设计 4

1.4面向对象程序设计 5

1.5程序开发过程 6

1.6最简单的程序 7

1.7函数 8

小结 11

第2章 基本数据类型与输入输出 12

2.1字符集与保留字 12

2.2基本数据类型 13

2.3变量定义 15

2.4字面量 17

2.5常量 20

2.6 I/O流控制 22

2.7 printf与scanf 28

小结 32

练习 32

第3章 表达式和语句 34

3.1表达式 34

3.2算术运算和赋值 36

3.3算术类型转换 38

3.4增量和减量 39

3.5关系与逻辑运算 41

3.6 if语句 44

3.7条件运算符 47

3.8逗号表达式 48

3.9求值次序与副作用 49

小结 50

练习 51

第4章 过程化语句 54

4.1 while语句 54

4.2 do...while语句 55

4.3 for语句 58

4.4 switch语句 60

4.5转向语句 63

4.6过程应用:求π 66

4.7过程应用:判明素数 68

4.8过程应用:求积分 71

小结 73

练习 74

第5章 函数 77

5.1函数概述 77

5.2函数原型 78

5.3全局变量与局部变量 81

5.4函数调用机制 83

5.5静态局部变量 86

5.6递归函数 87

5.7内联函数 90

5.8重载函数 93

5.9默认参数的函数 95

小结 97

练习 98

第6章 程序结构 100

6.1外部存储类型 100

6.2静态存储类型 102

6.3作用域 106

6.4可见性 110

6.5生命期 112

6.6头文件 113

6.7多文件结构 115

6.8编译预处理 116

小结 117

练习 118

第7章 数组 120

7.1数组定义 120

7.2访问数组元素 122

7.3初始化数组 124

7.4向函数传递数组 128

7.5二维数组 130

7.6数组应用:排序 133

7.7数组应用:Josephus问题 140

7.8数组应用:矩阵乘法 142

小结 144

练习 144

第8章 指针 145

8.1指针概念 145

8.2指针运算 150

8.3指针与数组 153

8.4堆内存分配 155

8.5 const指针 159

8.6指针与函数 161

8.7字符指针 167

8.8指针数组 171

8.9命令行参数 174

8.10函数指针 177

小结 182

练习 182

第9章 引用 185

9.1引用的概念 185

9.2引用的操作 186

9.3什么能被引用 188

9.4用引用传递函数参数 189

9.5返回多个值 191

9.6用引用返回值 192

9.7函数调用作为左值 196

9.8用const限定引用 198

9.9返回堆中变量的引用 200

小结 201

练习 202

第10章 结构 204

10.1结构概述 204

10.2结构与指针 208

10.3结构与数组 209

10.4传递结构参数 212

10.5返回结构 214

10.6链表结构 217

10.7创建与遍历链表 219

10.8删除链表结点 222

10.9插入链表结点 224

10.10结构应用:Josephus问题 226

小结 228

练习 229

第二部分 面向对象程序设计 232

第11章类 232

11.1从结构到类 232

11.2软件方法的发展必然 234

11.3定义成员函数 236

11.4调用成员函数 240

11.5保护成员 244

11.6屏蔽类的内部实现 247

11.7再论程序结构 252

小结 256

练习 257

第12章 构造函数 260

12.1类与对象 260

12.2构造函数的需要性 261

12.3构造函数的使用 263

12.4析构函数 268

12.5带参数的构造函数 271

12.6重载构造函数 273

12.7默认构造函数 276

12.8类成员初始化的困惑 278

12.9构造类成员 281

12.10构造对象的顺序 285

小结 288

练习 288

第13章 面向对象程序设计 290

13.1抽象 290

13.2分类 291

13.3设计和效率 292

13.4讨论Josephus问题 293

13.5结构化方法 294

13.6结构化方法的实现 296

13.7面向对象方法 298

13.8面向对象方法的实现 301

13.9程序维护 306

小结 310

练习 311

第14章 堆与拷贝构造函数 312

14.1关于堆 312

14.2需要new和delete的原因 312

14.3分配堆对象 314

14.4拷贝构造函数 316

14.5默认拷贝构造函数 318

14.6浅拷贝与深拷贝 320

14.7临时对象 323

14.8无名对象 324

14.9构造函数用于类型转换 325

小结 326

练习 326

第15章 静态成员与友元 330

15.1静态成员的需要性 330

15.2静态成员的使用 331

15.3静态数据成员 335

15.4静态成员函数 338

15.5需要友元的原因 341

15.6友元的使用 344

小结 347

练习 347

第16章 继承 349

16.1继承的概念 349

16.2继承的工作方式 350

16.3派生类的构造 352

16.4继承与组合 354

16.5多态性 355

16.6多态的思考方式 356

16.7多态性如何工作 358

16.8不恰当的虚函数 360

16.9虚函数的限制 363

16.10类的冗余 363

16.11克服冗余带来的问题 368

16.12类的分解 371

16.13抽象类 375

16.14由抽象类派生具体类 377

16.15纯虚函数的需要性 378

小结 379

练习 380

第17章 多重继承 381

17.1多继承如何工作 381

17.2继承的模糊性 382

17.3虚拟继承 383

17.4多继承的构造顺序 387

17.5继承的访问控制 389

17.6保护继承与私有继承 392

小结 394

练习 394

第18章 运算符重载 396

18.1运算符重载的需要性 396

18.2如何重载运算符 397

18.3值返回与引用返回 400

18.4运算符作成员函数 402

18.5重载增量运算符 405

18.6转换运算符 408

18.7赋值运算符 410

小结 413

练习 414

第19章 I/O流 415

19.1 printf和scanf的缺陷 415

19.2 I/O标准流类 416

19.3文件流类 418

19.4串流类 420

19.5控制符 421

19.6使用I/O成员函数 424

19.7重载插入运算符 428

19.8插入运算符与虚函数 431

19.9文件操作 433

小结 437

练习 437

第20章 模板 438

20.1模板的概念 438

20.2为什么要用模板 439

20.3函数模板 441

20.4重载模板函数 442

20.5类模板的定义 443

20.6使用类模板 446

20.7使用标准模板类库:Josephus问题 447

小结 449

练习 450

第21章 异常处理 451

21.1异常的概念 451

21.2异常的基本思想 452

21.3异常的实现 453

21.4异常的规则 455

21.5多路捕捉 458

21.6异常处理机制 461

21.7使用异常的方法 464

小结 465

练习 465

参考文献 467