图书介绍

C++入门经典 第10版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

C++入门经典 第10版
  • (美)Walter Savitch著;周靖译 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302486763
  • 出版时间:2018
  • 标注页数:741页
  • 文件大小:103MB
  • 文件页数:761页
  • 主题词:C++语言-程序设计-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

C++入门经典 第10版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

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

1.1计算机系统2

硬件2

软件5

高级语言6

编译器7

历史回顾9

1.2编程和问题求解9

算法10

程序设计11

面向对象编程12

软件生命周期12

1.3 C+++入门13

C+++语言的起源13

一个C+++示范程序14

陷阱:在n中错误地使用斜杠17

编程提示:输入和输出语法17

简单C+++程序的布局17

陷阱:在include的文件名前错误地添加一个空格19

编译和运行C+++程序19

陷阱:编译C+++11程序19

编程提示:让程序运行起来20

1.4测试和调试22

各种程序错误22

陷阱:错误地假定程序正确23

小结24

自测题答案25

编程练习26

编程项目27

第2章 C+++基础知识29

2.1变量和赋值30

变量30

名称:标识符32

变量声明33

赋值语句34

陷阱:未初始化的变量35

编程提示:使用有意义的名称36

2.2输入和输出37

使用cout进行输出37

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

转义序列39

编程提示:用cin或endl终止每一个程序40

格式化带小数点的数字41

用cin进行输入42

设计输入和输出43

编程提示:I/O中的换行43

2.3数据类型和表达式44

int类型和double类型44

其他数值类型45

C+++11类型46

char类型47

bool类型48

string类简介48

类型的兼容性49

算术操作符和表达式50

陷阱:除法中的整数52

更多赋值语句53

2.4简单控制流程54

一个简单的分支机制54

陷阱:连续的不等式58

陷阱:该用==的时候用了=58

复合语句59

简单的循环机制61

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

编程实例:信用卡余额64

陷阱:无限循环65

2.5程序风格67

缩进67

注释67

为常量命名69

小结71

自测题答案72

编程练习75

编程项目76

第3章 更多的控制流程81

3.1使用布尔表达式82

布尔表达式求值82

陷阱:将布尔表达式转换成int值85

枚举类型(选读)87

3.2多路分支87

嵌套语句88

编程提示:在嵌套语句中使用花括号88

多路if-else语句90

编程实例:州收入税91

switch语句94

陷阱:忘记在switch语句中添加break96

为菜单使用switch语句97

代码块98

陷阱:疏忽局部变量100

3.3 C+++循环语句详解101

while语句回顾101

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

for语句104

陷阱:for语句中多余的分号108

应该使用哪种循环108

陷阱:未初始化的变量和无限循环110

break语句110

陷阱:嵌套循环中的break语句111

3.4设计循环111

求和与求乘积的循环112

终止循环113

嵌套循环115

调试循环116

小结119

自测题答案120

编程练习123

编程项目124

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

4.1自顶向下设计130

4.2预定义函数130

使用预定义函数131

随机数生成134

强制类型转换135

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

陷阱:整数除法丢弃了小数部分137

4.3程序员自定义函数138

函数定义138

返回布尔值的函数142

另一种形式的函数声明142

陷阱:实参顺序错误143

函数定义语法小结144

再论函数定义的位置144

编程提示:在分支语句中使用函数调用145

4.4过程抽象146

黑盒的比喻146

编程提示:选择形参名称147

编程提示:嵌套循环148

案例分析:购买比萨150

编程提示:使用伪代码154

4.5作用域和局部变量155

函数如同小程序155

编程实例:豌豆试验田157

全局常量和全局变量157

传值形参是局部变量158

块作用域160

再论命名空间161

编程实例:阶乘函数163

4.6重载函数名称164

重载入门164

编程实例:购买比萨(修订版)166

自动类型转换168

小结170

自测题答案171

编程练习173

编程项目174

第5章 用函数完成所有子任务177

5.1 void函数178

void函数的定义178

编程实例温度换算180

void函数中的return语句181

5.2传引用参数182

初探传引用调用182

传引用调用详解184

编程实例:swapValues函数187

混合的参数列表188

编程提示:应该使用哪种参数189

陷阱:疏忽造成的局部变量190

5.3使用过程抽象192

在函数中调用其他函数192

前条件和后条件193

案例分析:超市定价系统194

5.4测试和调试函数198

存根和驱动程序198

5.5常规调试技术201

不抱成见201

检查常见错误202

定位错误202

assert宏203

小结205

自测题答案206

编程练习208

编程项目209

第6章 I/O流——对象和类入门213

6.1流和基本文件I/O214

为什么要用文件来I/O215

文件I/O215

类与对象入门218

编程提示:检查文件是否成功打开219

文件I/O技术222

追加到文件(选读)223

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

6.2流I/O工具227

用流函数格式化输出227

操纵元230

流作为函数实参232

编程提示:检查文件尾233

命名空间的问题234

编程实例:整理文件格式235

6.3字符I/O236

get和put成员函数236

putback成员函数(选读)239

编程实例:检查输入239

陷阱:输入中不期而遇的“n”241

编程实例:另一个newLine函数242

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

eof成员函数246

编程实例:编辑文本文件247

预定义字符函数249

陷阱:toupper和tolower返回值250

小结252

自测题答案253

编程练习257

编程项目258

第7章 数组263

7.1数组入门264

声明和引用数组264

编程提示:为数组使用for循环266

陷阱:数组索引总是从零开始266

编程提示:为数组长度使用己定义常量266

数组在内存中的表示267

陷阱:数组索引越界268

初始化数组269

编程提示:C+++11基于范围的for语句270

7.2函数中的数组272

索引变量作为函数参数272

整个数组作为函数参数274

const参数修饰符276

陷阱:const参数修饰符的使用不一致277

返回数组的函数278

案例分析:产量图278

7.3数组编程287

部分填充数组287

编程提示:不要吝啬形参289

编程实例:搜索数组290

编程实例:数组排序291

编程实例:冒泡排序294

7.4多维数组297

多维数组基础297

多维数组参数298

编程实例:二维打分程序299

陷阱:在数组索引之间使用逗号302

小结303

自测题答案304

编程练习306

编程项目307

第8章 字符串和向量315

8.1字符串的数组类型316

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

陷阱:为C字符串使用=和==319

〈cstring〉中的其他函数321

陷阱:使用strcpy复制C字符串越界322

C字符串输入和输出324

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

8.2标准string类330

标准类string简介330

string类的I/O332

编程提示:getline的其他版本334

陷阱:混合使用cin〉〉变量;和getline335

用string类进行字符串处理336

编程实例:回文测试338

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

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

8.3向量342

向量基础知识342

陷阱:使用方括号时超出向量长度345

编程提示:向量赋值具有良好行为345

效率问题345

小结347

自测题答案348

编程练习349

编程项目350

第9章 指针和动态数组355

9.1指针356

指针变量357

基本内存管理362

陷阱:虚悬指针362

静态变量和自动变量362

编程提示:定义指针类型363

9.2动态数组364

数组变量和指针变量365

创建和使用动态数组366

指针运算(选读)370

多维动态数组(选读)371

小结373

自测题答案374

编程练习374

编程项目375

第10章 定义类379

10.1结构380

用于异种数据的结构380

陷阱:结构定义中忘记添加分号383

结构作为函数参数384

编程提示:使用层次化结构384

对结构进行初始化386

10.2类388

定义类和成员函数388

公共成员和私有成员391

编程提示:将所有成员变量设为私有396

编程提示:定义取值函数和赋值函数397

编程提示:将赋值操作符用于对象398

编程实例:BankAccount类(版本1)398

总结类的一些特征402

用于初始化的构造函数403

编程提示:总是包括默认构造函数408

陷阱:无参构造函数409

C+++11的成员初始化器和构造函数委托410

10.3抽象数据类型411

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

编程实例:类的另一种实现414

10.4继承418

派生类418

定义派生类419

小结423

自测题答案424

编程练习428

编程项目428

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

11.1友元函数434

编程实例:一个相等性函数434

友元函数436

编程提示:定义取值函数和友元函数438

编程提示:同时使用成员函数和非成员函数439

编程实例:Money类(版本1)439

实现digitToInt(选读)443

陷阱:数字常量中的前置零444

const参数修饰符445

陷阱:修饰符const的用法不一致447

11.2重载操作符449

重载操作符449

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

重载一元操作符453

重载〉〉和〈〈454

11.3数组和类460

类数组460

数组作为类成员463

编程实例:用于部分填充数组的类463

11.4类和动态数组465

编程实例:字符串变量类466

析构函数468

陷阱:指针作为传值参数469

拷贝构造函数471

重载赋值操作符474

小结477

自测题答案478

编程练习484

编程项目484

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

12.1独立编译492

ADT回顾492

案例分析:独立编译的DigitalTime类493

使用#ifndef500

编程提示:定义其他库502

12.2命名空间503

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

创建命名空间504

限定名称506

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

无名命名空间508

陷阱:混淆全局命名空间和无名命名空间512

小结513

自测题答案514

编程练习515

编程项目516

第13章 指针和链表517

13.1节点和链表518

节点519

nullptr521

链表522

在表头插入节点523

陷阱:丢失节点525

搜索链表526

指针作为迭代器528

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

陷阱:为动态数据结构使用赋值操作符531

链表的变体531

类构成的链表533

13.2栈和队列536

栈536

编程实例:栈类536

队列539

编程实例:队列类540

小结544

自测题答案545

编程练习546

编程项目547

第14章 递归553

14.1面向任务的递归函数554

案例分析:垂直数字555

深入递归559

陷阱:无穷递归560

用于递归的栈562

陷阱:栈溢出563

递归与迭代563

14.2面向值的递归函数564

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

编程实例:另一个求乘方函数564

14.3递归思想567

递归设计技术567

案例分析:二叉搜索(递归思想示例)569

编程实例:递归成员函数574

小结577

自测题答案578

编程练习581

编程项目581

第15章 继承585

15.1继承基础586

派生类588

派生类中的构造函数593

陷阱:使用来自基类的私有成员变量595

陷阱:私有成员函数不会继承596

protected限定符596

重定义成员函数598

重定义与重载的比较600

访问重定义的基函数601

15.2继承细节602

不继承的函数602

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

派生类中的析构函数603

15.3多态性604

晚期绑定604

C+++虚函数605

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

陷阱:不使用虚成员函数612

陷阱:试图对虚成员函数定义不齐全的类进行编译612

编程提示:使析构函数成为虚函数613

小结615

自测题答案616

编程练习619

编程项目620

第16章 异常处理627

16.1异常处理基础628

异常处理的简单例子629

定义自己的异常类635

多个throw块和catch块636

陷阱:首先捕捉较具体的异常638

编程提示:异常类可能很简单638

在函数中抛出异常639

异常规范640

陷阱:派生类中的异常规范641

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

抛出异常的时机642

陷阱:未捕捉的异常643

陷阱:嵌套try-catch块643

陷阱:滥用异常644

异常类层次结构644

测试可用内存644

重新抛出异常645

小结646

自测题答案647

编程练习647

编程项目649

第17章 模板651

17.1用于算法抽象的模板652

函数模板653

陷阱:编译器的复杂性656

编程实例:泛型排序函数657

编程提示:如何定义模板660

陷阱:为不恰当的类型使用模板660

17.2用于数据抽象的模板660

类模板的语法660

编程实例:数组类663

小结668

自测题答案669

编程练习671

编程项目671

第18章 标准模板库675

18.1迭代器676

using声明677

迭代器基础677

编程提示:使用auto简化变量声明681

陷阱:编译器问题681

迭代器的种类682

常量和可变迭代器684

逆向迭代器685

其他种类的迭代器687

18.2容器687

顺序容器687

陷阱:迭代器和删除元素690

编程提示:容器中的类型定义691

容器配接器stack和queue691

关联容器set和map693

编程提示:为容器使用初始化、基于范围的for和auto698

效率问题699

18.3泛型算法699

运行时间和大O表示法700

容器访问运行时间703

不修改容器的算法703

会修改容器的算法706

set算法707

排序算法708

18.4不断进化的C+++708

std::array709

正则表达式710

线程713

智能指针717

小结722

自测题答案723

编程练习724

编程项目724

附录A C+++关键字729

附录B 操作符的优先级730

附录C ASCII字符集731

附录D部分库函数732

附录E内联函数736

附录F重载数组索引方括号737

附录G this指针738

附录H 将操作符重载为成员操作符740

热门推荐