《C++入门经典 第9版》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:(美)萨维齐著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2015
  • ISBN:9787302402978
  • 页数:726 页
图书介绍:本书是最优秀的C++入门教材之一,在全球已经拥有数十万读者。作者结合自己多年的教学经验,根据教学大纲精心设计并编写了书中内容。与此同时,还采用了很多便于读者巩固所学知识的教学特征,比如各章开始处的小节总览,书中随处可见的总结框、编程提示和编程陷阱,各章结尾处的小结、习题和编程项目等。这些非常适合初学者掌握重要的编程概念。

第1章 计算机和C++编程入门 1

概述 2

1.1计算机系统 2

硬件 2

软件 5

高级语言 6

编译器 7

1.2编程和问题求解 9

算法 9

程序设计 10

面向对象编程 12

软件生命周期 12

1.3 C++入门 13

C++语言的起源 13

一个C++示范程序 14

简单C++程序的布局 17

编译和运行C++程序 19

1.4测试和调试 21

程序错误的分类 22

小结 24

自测题答案 24

编程练习 25

编程项目 26

第2章 C++基础知识 29

概述 30

预备知识 30

2.1变量和赋值 30

变量 30

名称:标识符 32

变量声明 33

赋值语句 34

2.2输入和输出 37

使用cout进行输出 37

include预编译指令和命名空间 38

转义序列 39

格式化带小数点的数字 41

用cin进行输入 42

设计输入和输出 43

2.3数据类型和表达式 44

int类型和double类型 44

其他数值类型 45

C++11类型 46

char类型 47

bool类型 48

string类简介 48

类型的兼容性 49

算术操作符和表达式 51

更多赋值语句 54

2.4简单控制流程 54

一个简单的分支机制 54

复合语句 59

简单的循环机制 61

递增操作符和递减操作符 63

2.5程序风格 66

缩进 67

注释 67

为常量命名 68

小结 71

自测题答案 71

编程练习 74

编程项目 76

第3章 更多的控制流程 79

概述 80

预备知识 80

3.1使用布尔表达式 80

布尔表达式求值 80

枚举类型(选读) 85

3.2多路分支 86

嵌套语句 86

多路if-else语句 88

switch语句 92

为菜单使用switch语句 95

语句块 96

3.3 C++循环语句详解 99

while语句回顾 99

再论递增操作符和递减操作符 100

for语句 102

应该使用哪种循环 106

break语句 108

3.4设计循环 109

求和与求乘积的循环 109

终止循环 111

嵌套循环 113

调试循环 114

小结 117

自测题答案 117

编程练习 121

编程项目 122

第4章 过程抽象和返回值的函数 125

概述 126

预备知识 126

4.1自顶向下设计 126

4.2预定义函数 126

使用预定义函数 127

随机数生成 130

强制类型转换 131

强制类型转换的古老形式 133

4.3程序员自定义函数 134

函数定义 134

返回布尔值的函数 138

另一种形式的函数声明 138

函数定义语法小结 140

再论函数定义的位置 140

4.4过程抽象 142

黑盒的比喻 142

4.5作用域和局部变量 151

函数如同小程序 151

全局常量和全局变量 153

传值形参是局部变量 155

块作用域 156

再论命名空间 157

4.6重载函数名称 160

重载入门 160

自动类型转换 164

小结 166

自测题答案 166

编程练习 169

编程项目 170

第5章 所有子任务的函数 173

概述 174

预备知识 174

5.1 void函数 174

void函数的定义 174

void函数中的return语句 177

5.2传引用参数 178

初探传引用调用 179

传引用调用详解 180

混合的参数列表 185

5.3使用过程抽象 188

在函数中调用其他函数 188

前条件和后条件 189

5.4测试和调试函数 194

存根和驱动程序 194

5.5常规调试技术 197

兼容并蓄,不抱偏见 198

检查常见错误 198

定位错误 198

assert宏 200

小结 202

自测题答案 202

编程练习 205

编程项目 206

第6章 I/O流:对象和类入门 209

概述 210

预备知识 210

6.1流和基本文件I/O 210

文件之于I/O的重要性 211

文件I/O 211

类与对象入门 214

文件I/O技术 218

追加到文件(选读) 220

文件名作为输入(选读) 221

6.2流I/O工具 224

用流函数格式化输出 224

操纵元 227

流作为函数实参 228

命名空间的问题 231

6.3字符I/O 233

成员函数get和put 233

putback成员函数(选读) 236

函数的默认实参(选读) 240

eof成员函数 243

预定义字符函数 246

小结 249

自测题答案 249

编程练习 254

编程项目 254

第7章 数组 259

概述 260

预备知识 260

7.1数组入门 260

声明和引用数组 260

数组在内存中的表示 263

初始化数组 265

7.2函数中的数组 267

索引变量作为函数参数 267

整个数组作为函数参数 269

const参数修饰符 271

返回数组的函数 273

7.3数组编程 282

部分填充数组 282

7.4多维数组 292

多维数组基础 292

多维数组参数 293

小结 298

自测题答案 298

编程练习 301

编程项目 302

第8章 字符串和向量 309

概述 310

预备知识 310

8.1字符串的数组类型 310

C字符串值和C字符串变量 311

<cstring>中的其他函数 315

C字符串输入和输出 318

C字符串到数值的转换和可靠输入 320

8.2标准string类 324

标准类string简介 324

string类的I/O 326

用string类进行字符串处理 330

string对象和C字符串之间的转换 335

字符串和数字之间的转换 336

8.3向量 336

向量基础知识 336

效率问题 339

小结 341

自测题答案 341

编程练习 343

编程项目 343

第9章 指针和动态数组 349

概述 350

预备知识 350

9.1指针 350

指针变量 351

基本内存管理 356

静态变量和自动变量 356

9.2动态数组 359

数组变量和指针变量 359

创建和使用动态数组 361

指针运算(选读) 364

多维动态数组(选读) 365

小结 367

自测题答案 367

编程练习 368

编程项目 368

第10章 定义类 373

概述 374

预备知识 374

10.1结构 374

用于异种数据的结构 374

结构作为函数参数 378

对结构进行初始化 380

10.2类 382

定义类和成员函数 382

公共成员和私有成员 386

总结类的一些特征 396

用于初始化的构造函数 397

10.3抽象数据类型 405

用于生成抽象数据类型的类 405

10.4继承 411

派生类 412

定义派生类 413

小结 416

自测题答案 416

编程练习 420

编程项目 420

第11章 类中的友元函数、重载操作符和数组 425

概述 426

预备知识 426

11.1友元函数 426

友元函数 428

实现digit to int(选读) 435

const参数修饰符 437

11.2重载操作符 441

重载操作符 442

用于自动类型转换的构造函数 444

重载一元操作符 445

重载>>和<< 446

11.3数组和类 452

类数组 452

数组作为类成员 455

11.4类和动态数组 458

析构函数 460

拷贝构造函数 463

重载赋值操作符 467

小结 470

自测题答案 470

编程练习 476

编程项目 477

第12章 独立编译和命名空间 483

概述 484

预备知识 484

12.1独立编译 484

ADT回顾 484

使用#ifndef 492

12.2命名空间 495

命名空间和using预编译指令 495

创建命名空间 496

限定名称 498

命名空间的微妙之处(选读) 499

无名命名空间 500

小结 505

自测题答案 505

编程练习 506

编程项目 508

第13章 指针和链表 509

概述 510

预备知识 510

13.1节点和链表 510

节点 511

nullptr 513

链表 514

在表头插入节点 515

搜索链表 518

指针作为迭代器 520

在列表中插入和删除节点 521

链表的变体 524

类构成的链表 526

13.2栈和队列 528

栈 528

队列 532

小结 536

自测题答案 536

编程练习 538

编程项目 538

第14章 递归 545

概述 546

预备知识 546

14.1面向任务的递归函数 546

深入递归 552

用于递归的栈 554

递归与迭代 555

14.2面向值的递归函数 556

要返回值的递归函数的常规形式 556

14.3递归思想 560

递归设计技术 560

小结 570

自测题答案 570

编程练习 573

编程项目 573

第15章 继承 577

概述 578

预备知识 578

15.1继承基础 578

派生类 580

派生类中的构造函数 585

protected限定符 588

重定义成员函数 590

重定义与重载的比较 592

访问重定义的基函数 593

15.2继承细节 594

不继承的函数 594

派生类中的赋值操作符和拷贝构造函数 595

派生类中的析构函数 595

15.3多态性 596

晚期绑定 597

C++虚函数 597

虚函数和扩展类型兼容性 601

小结 607

自测题答案 607

编程练习 610

编程项目 612

第16章 异常处理 617

概述 618

预备知识 618

16.1异常处理基础 618

异常处理的简单例子 619

定义自己的异常类 625

多个throw块和catch块 626

在函数中抛出异常 629

异常规范 630

16.2用于异常处理的编程技术 632

抛出异常的时机 632

异常类层次结构 634

测试可用内存 634

重新抛出异常 635

小结 636

自测题答案 636

编程练习 637

编程项目 638

第17章 模板 641

概述 642

预备知识 642

17.1用于算法抽象的模板 642

函数模板 643

17.2用于数据抽象的模板 651

类模板的语法 651

小结 657

自测题答案 657

编程练习 659

编程项目 659

第18章 标准模板库 663

概述 664

预备知识 664

18.1迭代器 664

using声明 665

迭代器基础 665

迭代器的种类 670

常量和可变迭代器 673

逆向迭代器 673

其他种类的迭代器 675

18.2容器 675

顺序容器 676

容器配接器stack和queue 679

关联容器set和map 682

效率问题 687

18.3泛型算法 688

运行时间和大O表示法 689

容器访问运行时间 691

不修改容器的算法 692

会修改容器的算法 695

set算法 696

排序算法 697

小结 698

自测题答案 698

编程练习 699

编程项目 700

附录1 C++关键字 705

附录2 操作符的优先级 706

附录3 ASCⅡ字符集 707

附录4 部分库函数 708

附录5 内联函数 712

附录6 重载数组索引方括号 713

附录7 this指针 714

附录8 将操作符重载为成员操作符 716