书籍详情

C++程序设计(第2版)

C++程序设计(第2版)

作者:姜学锋,刘君瑞,周果清

出版社:清华大学出版社

出版时间:2022-10-01

ISBN:9787302617433

定价:¥79.90

购买这本书可以去
内容简介
  本书以C/C++语言为基础,系统地介绍程序语言、算法与数据结构,注重系统能力培养。全书由14章组成,以程序设计语言、程序设计方法、程序设计技术三大主题组织教材内容,采用“数据表示”和“程序实现”双线索知识体系。 本书结构清晰、语言通俗易懂,具有专业的编程风格;内容由浅入深、知识循序渐进,例题丰富,注重典型案例的精选与提炼,配套有程序设计综合训练平台、系列教学软件、教辅参考书、混合式教学和慕课资源等。 本书可作为高等院校本科生“程序设计”“计算机高级语言”等课程的教材,也可作为信息技术类培训课程的教材,还可作为软件开发、学科竞赛实践活动和编程爱好者的自学教材。
作者简介
暂缺《C++程序设计(第2版)》作者简介
目录

目录



第1部分基础篇


第1章程序设计基础31.1计算机系统和工作原理3

1.1.1计算机系统的组成3

1.1.2指令与程序5

1.2信息的表示与存储7

1.2.1计算机的数字系统7

1.2.2进位计数制的转换8

1.2.3数值数据的表示11

1.2.4非数值数据的表示15

1.3程序设计语言16

1.3.1机器语言与汇编语言16

1.3.2高级语言17

1.4程序设计概述18

1.4.1计算机问题求解的基本特点18

1.4.2算法的定义与特性18

1.4.3算法的表示19

1.4.4结构化程序设计21

1.4.5面向对象程序设计22

1.5C++概述23

1.5.1C++与C语言23

1.5.2C++基本词法23

1.5.3简单的C++程序25

1.5.4C++程序基本结构29

习题30

第2部分语言篇

第2章数据及计算332.1数据类型33

2.1.1整型34

2.1.2浮点型35

2.1.3字符型36

2.1.4逻辑型37

2.2常量38

2.2.1整型常量38

2.2.2浮点型常量39

2.2.3字符常量39

2.2.4字符串常量41

2.2.5符号常量42

2.3变量43

2.3.1变量的概念43

2.3.2定义变量43

2.3.3使用变量44

2.3.4存储类别45

2.3.5类型限定45

2.4运算符与表达式47

2.4.1运算符与表达式的概念47

2.4.2算术运算符49

2.4.3自增自减运算符50

2.4.4关系运算符51

2.4.5逻辑运算符53

2.4.6条件运算符54

2.4.7位运算符55

2.4.8赋值运算符59

2.4.9取长度运算符61

2.4.10逗号运算符62

2.4.11圆括号运算符62

2.4.12常量表达式63

2.5类型转换63

2.5.1隐式类型转换63

2.5.2显式类型转换66

习题67

第3章流程控制69

3.1语句69

3.1.1简单语句69

3.1.2复合语句70

3.1.3注释71

3.1.4语句的写法73

3.2输入与输出74

3.2.1输入流与输出流75

3.2.2字符输入与输出82

3.2.3格式化输出83

3.2.4格式化输入87

3.3程序顺序结构89

3.3.1顺序执行89

3.3.2跳转执行90

3.4程序选择结构91

3.4.1if语句91

3.4.2switch语句94

3.4.3选择结构的嵌套97

3.4.4选择结构程序举例101

3.5程序循环结构103

3.5.1while语句103

3.5.2do语句105

3.5.3for语句106

3.5.4break语句108

3.5.5continue语句109

3.5.6循环结构的嵌套110

3.5.7循环结构程序举例110

习题114

第4章程序模块化——函数117

4.1函数定义117

4.1.1函数定义的一般形式117

4.1.2函数返回120

4.2函数参数121

4.2.1形式参数121

4.2.2实际参数122

4.2.3参数传递机制122

4.2.4函数调用栈123

4.2.5const参数125

4.2.6可变参数函数125

4.3函数原型与调用127

4.3.1函数声明和函数原型127

4.3.2库函数的调用方法130

4.3.3常用库函数131

4.4内联函数135

4.5默认参数136

4.5.1带默认参数的函数136

4.5.2默认参数函数的调用138

4.6函数重载139

4.6.1函数重载定义139

4.6.2重载函数的调用142

4.7函数模板144

4.7.1函数模板的概念144

4.7.2函数模板的定义和使用145

4.8函数调用形式149

4.8.1嵌套调用149

4.8.2递归调用151

4.9作用域和生命期153

4.9.1局部变量153

4.9.2全局变量154

4.9.3作用域155

4.9.4程序映像和内存布局158

4.9.5生命期161

4.10对象初始化164

4.11声明与定义166

4.12变量修饰小结168

4.13程序组织结构169

4.13.1内部函数169

4.13.2外部函数170

4.13.3多文件结构170

4.13.4头文件与工程文件171

4.13.5提高编译速度173

4.14函数应用程序举例174

习题177

第5章任务自动化——预处理179

5.1宏定义179

5.1.1不带参数的宏定义180

5.1.2带参数的宏定义182

5.1.3#和##预处理运算186

5.1.4预定义宏186

5.2文件包含187

5.3条件编译189

5.3.1#define定义条件189

5.3.2#ifdef、#ifndef189

5.3.3#if#elif190

习题191

第6章批量数据——数组193

6.1一维数组的定义和引用193

6.1.1一维数组的定义193

6.1.2一维数组的初始化195

6.1.3一维数组的引用195

6.2多维数组的定义和引用197

6.2.1多维数组的定义197

6.2.2多维数组的初始化199

6.2.3多维数组的引用200

6.3数组与函数203

6.3.1数组作为函数的参数203

6.3.2数组参数的传递机制204

6.4字符串207

6.4.1字符数组207

6.4.2字符串209

6.4.3字符串的输入和输出211

6.4.4字符串数组213

6.4.5字符串处理函数214

6.5C++字符串类219

6.5.1字符串对象的定义和引用219

6.5.2字符串对象的操作220

6.5.3字符串对象数组223

6.6数组应用程序举例224

习题233

第7章引用数据236

7.1指针与指针变量236

7.1.1地址和指针的概念236

7.1.2指针变量237

7.2指针的使用及运算239

7.2.1获取对象的地址239

7.2.2指针的间接访问240

7.2.3指针变量的初始化与赋值242

7.2.4指针的有效性244

7.2.5指针运算245

7.2.6指针的const限定250

7.3指针与数组252

7.3.1指向一维数组元素的指针253

7.3.2指向多维数组元素的指针257

7.3.3数组指针260

7.3.4指针数组262

7.3.5指向指针的指针264

7.4指针与字符串267

7.4.1指向字符串的指针267

7.4.2指针与字符数组的比较269

7.4.3指向字符串数组的指针270

7.5指针与函数272

7.5.1指针作为函数参数272

7.5.2函数返回指针值281

7.5.3函数指针282

7.6动态内存286

7.6.1动态内存的概念286

7.6.2动态内存的分配和释放287

7.6.3动态内存的应用290

7.7带参数的main函数294

7.8引用类型295

7.8.1引用的概念与定义295

7.8.2引用的使用296

7.8.3常引用299

7.8.4对象、指针与引用的比较300

习题301

第8章组合数据——自定义类型303

8.1结构体类型303

8.2结构体对象305

8.2.1结构体对象的定义305

8.2.2结构体对象的初始化308

8.2.3结构体对象的使用308

8.3结构体与数组309

8.3.1结构体数组309

8.3.2结构体数组成员310

8.4结构体与指针311

8.4.1指向结构体的指针311

8.4.2指向结构体数组的指针313

8.4.3结构体指针成员314

8.5结构体与函数315

8.5.1结构体对象作为函数参数315

8.5.2结构体数组作为函数参数315

8.5.3结构体指针或引用作为函数参数316

8.5.4函数返回结构体对象、指针或引用316

8.6共用体317

8.6.1共用体概念及类型定义317

8.6.2共用体对象的定义318

8.6.3共用体对象的使用319

8.6.4结构体与共用体嵌套320

8.7枚举类型320

8.7.1枚举类型的声明320

8.7.2枚举类型对象321

8.8位域321

8.8.1位域的声明321

8.8.2位域的使用323

8.9用户自定义类型324

习题326

第3部分方法篇

第9章类与对象3319.1类的定义和声明331

9.1.1类的定义331

9.1.2成员访问控制334

9.1.3类的数据成员335

9.1.4类的成员函数336

9.1.5类声明与类定义340

9.1.6类之间的关系341

9.1.7类和结构体的区别343

9.2对象的定义和使用343

9.2.1对象的定义343

9.2.2对象的动态建立和释放345

9.2.3对象成员的引用346

9.3构造函数和析构函数351

9.3.1构造函数351

9.3.2构造函数的重载357

9.3.3带默认参数的构造函数358

9.3.4默认构造函数360

9.3.5隐式类类型转换361

9.3.6复制构造函数362

9.3.7构造函数小结367

9.3.8析构函数368

9.3.9构造函数和析构函数的调用次序370

9.4对象数组371

9.5对象指针372

9.5.1指向对象的指针372

9.5.2类成员指针372

9.5.3this指针374

9.6类作用域与对象生命期375

9.6.1类作用域375

9.6.2对象生命期380

9.7const限定383

9.7.1常对象383

9.7.2常数据成员384

9.7.3常成员函数385

9.7.4指向对象的常指针386

9.7.5指向常对象的指针变量387

9.7.6对象的常引用387

9.8静态成员388

9.8.1静态数据成员388

9.8.2静态成员函数390

9.9友元392

9.9.1友元函数392

9.9.2友元类394

9.10类模板394

9.10.1类模板的定义394

9.10.2泛型编程397

9.11数据封装和信息隐蔽398

习题400

第10章继承与派生402

10.1类的继承与派生402

10.1.1基类与派生类402

10.1.2派生类的定义404

10.1.3派生类的构成405

10.2派生类成员的访问406

10.2.1类的保护成员406

10.2.2派生类成员的访问权限407

10.3赋值兼容规则409

10.4派生类的构造和析构函数410

10.4.1派生类的构造函数410

10.4.2派生类的析构函数412

10.5多重继承412

10.5.1多重继承派生类412

10.5.2二义性问题及名字支配规则413

10.5.3虚基类415

10.6多态性与虚函数416

10.6.1多态性的概念416

10.6.2虚函数420

10.6.3虚析构函数425

10.6.4纯虚函数425

10.6.5抽象类426

10.7命名的强制类型转换427

习题432

第11章运算符重载433

11.1运算符重载的概念433

11.2运算符重载的方法433

11.2.1运算符函数433

11.2.2重载运算符的规则436

11.2.3运算符重载为类成员函数438

11.2.4运算符重载为友元函数440

11.3典型运算符的重载441

11.3.1重载双目运算符441

11.3.2重载单目运算符443

11.3.3重载复合赋值运算符444

11.3.4重载流运算符444

11.3.5重载类型转换运算符446

习题447

第4部分工具篇

第12章异常处理45112.1基本概念451

12.1.1为什么要异常处理451

12.1.2程序健壮性452

12.1.3异常处理的方法452

12.2异常处理的实现453

12.2.1抛出异常453

12.2.2检测捕获异常454

12.2.3函数声明中的异常接口说明458

12.2.4异常处理中的构造与析构458

习题459

第13章命名空间460

13.1命名空间的概念460

13.2命名空间的定义与未命名的命名空间462

13.2.1命名空间的定义462

13.2.2未命名的命名空间466

13.3命名空间的使用467

13.3.1命名空间成员的使用467

13.3.2类和命名空间469

13.3.3标准命名空间的使用471

习题472

第14章标准库473

14.1C++标准库473

14.2标准输入输出474

14.2.1C++流的概念474

14.2.2文件流476

14.2.3字符串流483

14.3标准模板库485

14.3.1迭代器485

14.3.2向量486

14.3.3列表487

14.3.4队列489

14.3.5栈489

习题490

附录AASCII码对照表492

附录BC++关键字493

附录CC++运算符及其优先级、结合性495

参考文献498


猜您喜欢

读书导航