当前位置:首页 > 工业技术
C++自学通
C++自学通

C++自学通PDF电子书下载

工业技术

  • 电子书积分:12 积分如何计算积分?
  • 作 者:(美)(J.利伯蒂)(Jesse Liberty)著;路明等译
  • 出 版 社:机械工业出版社;西蒙与舒斯特国际出版公司
  • 出版年份:1997
  • ISBN:711106013X
  • 页数:339 页
图书介绍:本书是一本自学C + +编程的教程,分为24个课时,每课时为一章。书中介绍一了有关I/O处理、循环和数组、面向对象的程序设计、模块和创建C + +应用程序等内容。全书结构清楚、易于理解,无论是初学者还是已经有了一定C + +程序设计的经验,本书都将令你受益匪浅。
《C++自学通》目录
标签:自学

译者序 1

前言 1

第一部分 介绍C++ 1

第1章 入门 1

1.1 为什么C++是最佳选择 1

目录 1

1.1.1 过程化、结构化和面向对象的程序设计 2

1.1.2 C++和面向对象的程序 2

1.1.4 C++不仅仅是更好的C语言 3

1.1.5 是否应当首先学习C语言 3

1.1.3 C++是如何发展起来的 3

1.2 为编程作准备 4

1.3 区分C++、ANSI C++、Windows和其他领域的一些概念 4

1.4 编译和链接源代码 5

1.4.1 在集成开发环境中进行编译 5

1.4.2 链接程序 5

1.5 开发过程 5

1.6 HELLO.CPP——第一个C++程序 6

1.7 编译时出错 8

1.8 小结 8

1.9 问答 8

2.1.1 逐个字符检查#Include语句 10

2.1 一个简单程序的构成 10

第2章 C++程序的构成 10

2.1.2 逐行分析 11

2.2 注释 11

2.2.1 注释的类型 11

2.2.2 使用注释 12

2.3 功能 12

2.4 小结 15

2.5 问与答 15

第3章 变量与常量 16

3.1 什么是变量 16

3.1.1 分配内存空间 16

3.1.3 signed与unsigned 17

3.1.2 整数的大小 17

3.1.4 基本变量类型 18

3.2 定义一个变量 18

3.2.1 区分大小写 19

3.2.2 关键字 19

3.3 一次说明多个变量 20

3.4 给变量赋值 20

3.5 typedef语句 21

3.6 何时使用short和long 22

3.6.1 无符号整数的溢出 22

3.7.1 数值常量 23

3.7 常量 23

3.6.2 有符号整数的溢出 23

3.7.2 符号常量 24

3.8 杖举常量 24

3.9 小结 25

3.10 问与答 25

第4章 表达式与语句 26

4.1 语句 26

4.1.1 空白 26

4.1.2 复合语句 26

4.2 表达式 27

4.3.2 数学运算符 28

4.3 运算符 28

4.3.1 赋值运算符 28

4.4 组合使用赋值语句和数学运算符 29

4.5 增量运算和减量运算 29

4.6 优先级 31

4.7 括号嵌套 31

4.8 “真”与“假”的实质 32

4.9 关系运算符 32

4.10 if语句 33

4.10.1 else子句 33

4.10.2 高级if语句 34

4.11 在嵌套if语句中使用花括号 36

4.12 逻辑运算符 38

4.12.1 逻辑与 38

4.12.2 逻辑或 38

4.12.3 逻辑非 38

4.13 关系优先级 39

4.14 深入讨论逻辑值“真”与“假” 39

4.15 小结 39

4.16 问与答 40

第5章 功能 41

5.1 什么是功能 41

5.2.1 功能的说明 42

5.2 说明并定义功能 42

5.2.2 功能的定义 43

5.3 局部变量 45

5.4 全局变量 47

5.5 功能的语句 47

5.6 功能的实参 47

5.7 形参是局部变量 47

5.8 返回值 49

5.9 缺省形参 50

5.10 功能的重载 52

5.10.1 深入研究功能的机理 53

5.12 问与答 55

5.10.2 栈与功能 55

5.11 小结 55

第二部分 类 57

第6章 基本类 57

6.1 创建新类型 57

6.1.1 什么是类型 57

6.1.2 为什么要创建一个新类型 57

6.2 类与成员 58

6.2.1 类的说明 58

6.2.4 类与对象 59

6.3 访问类的成员 59

6.2.3 定义一个对象 59

6.2.2 有关命名的约定 59

6.4 私有成员和公有成员 60

6.5 类方法的实现 61

6.6 构造函数和析构函数 63

6.6.1 缺省构造函数 64

6.6.2 编译程序提供的构造函数 64

6.7 小结 66

6.8 问与答 67

7.1 const型成员函数 68

7.2 接口与方法 68

第7章 深入了解类 68

7.3 在何处放置类的说明以及方法的定义 69

7.4 内联实现 70

7.5 以其他的类作为数据成员的类 72

7.6 小结 75

7.7 问与答 75

第8章 高级程序流程控制 77

8.1 循环 77

8.1.1 goto语句——循环语句的起源 77

8.1.2 为什么现在不使用goto语句 78

8.2 while循环 78

8.2.1 更加复杂的while语句 79

8.2.2 continue和break 80

8.2.3 while(1)循环 82

8.3 do...while循环 83

8.4 for循环 84

8.4.1 高级for循环 86

8.4.2 空的for循环 88

8.4.3 循环嵌套 89

8.5 switch语句 90

8.6 小结 91

8.7 问与答 91

第9章 指针 93

9.1 什么是指针 93

第三部分 内存管理 93

9.1.1 在一个指针中存储地址值 95

9.1.2 指针名 96

9.1.3 目标访问运算符 96

9.1.4 指针、地址和变量 96

9.1.5 使用指针处理数据 97

9.1.6 检查地址值 98

9.2 为什么使用指针 99

9.3 栈和自由存储区 100

9.3.1 new 101

9.3.2 delete 101

9.4 小结 103

9.3.3 内存丢失 103

9.5 问与答 104

第10章 高级指针 105

10.1 在自由存储区内创建对象 105

10.2 删除对象 105

10.3 访问数据成员 106

10.4 自由存储区中的成员数据 107

10.5 this指针 109

10.6 this指针的用途 110

10.7 迷途指针或悬浮指针 110

10.8.1 const型指针和const型成员函数 111

10.8 const型指针 111

10.8.2 const型this指针 113

10.9 小结 113

10.10 问与答 113

第11章 引用 114

11.1 什么是引用 114

11.2 说明一个引用 114

11.3 对引用使用取址运算符 115

11.4 什么可以被引用 117

11.5 空指针和空引用 118

11.6 通过引用传递的方式给函数传递实参 118

11.6.1 使用指针使swap()函数正常工作 119

11.6.2 使用引用实现swap() 120

11.7 理解函数的域名和原型 122

11.8 返回多个值 122

11.9 小结 125

11.10 问与答 125

第12章 高级引用和指针 126

12.1 使用引用传递的方式以提高效率 126

12.2 使用引用代替指针 131

12.3 如何确定使用引用还是指针 133

12.4 不要返回一个非作用域中的目标对象的引用 133

12.5 返回一个在堆中的对象的引用 134

12.7 小结 136

12.6 指针的传递 136

12.8 问与答 137

第四部分 功能强大的工具 139

第13章 高级函数 139

13.1 重载成员函数 139

13.2 使用缺省值 141

13.4 缺省构造函数 143

13.7 复制构造函数 143

13.3 在使用缺省值或重载函数之间选择 143

13.5 重载函数 144

13.6 初始化对象 144

13.8 小结 148

13.9 问与答 149

第14章 运算符重载 150

14.1 运算符重载 150

14.1.1 定义一个增量函数 151

14.1.2 重载后置运算符 152

14.1.3 前置与后置的区别 152

14.1.4 operator+ 154

14.1.5 重载operator+ 156

14.1.7 何时需要重载 157

14.1.8 operator= 157

14.1.6 运算符重载的限制 157

14.2 转换运算符 159

14.3 小结 163

14.4 问与答 163

第15章 数组 164

15.1 什么是数组 164

15.2 数组元素 164

15.3 数组越界 166

15.4 界桩错误 166

15.5 初始化数组 166

15.6 对象数组 167

15.7 多维数组 168

15.8 关于内存 170

15.9 指针数组 170

15.10 说明自由存储区中的数组 172

15.11 指向数组的指针和指针数组 172

15.12 指针与数组名 173

15.13 删除自由存储区中的数组 174

15.14 char型数组 175

15.15 strcpy()和strnepy() 176

15.16 串类 178

15.17 小结 178

15.18 问与答 178

16.1.1 继承与派生 179

16.1 什么是继承 179

第五部分 继承和多态 179

第16章 继承 179

16.1.2 动物王国 180

16.1.3 派生的语法 180

16.2 私有访问权限和保护型访问权限 182

16.3 构造函数和析构函数 184

16.4 重置函数 190

16.4.1 重载与重置 192

16.4.2 隐藏基类方法 192

16.4.3 调用基类方法 193

16.6 问与答 195

16.5 小结 195

第17章 多态与派生类 196

17.1 虚方法 196

17.1.1 虚成员函数的工作机理 199

17.1.2 不能用基类指针调用基类中不存在的方法 200

17.1.3 对象分离 201

17.1.4 虚析构函数 203

17.1.5 虚复制构造函数 203

17.1.6 虚方法的开销 206

17.2 小结 206

17.3 问与答 206

18.1 单重继承的问题 208

第18章 高级多态 208

18.2 抽象数据类型 212

18.2.1 纯虚函数 215

18.2.2 抽象的复杂层次结构 219

18.2.3 如何决定是否使用抽象类型 223

18.3 小结 223

18.4 问与答 224

第19章 链表 225

19.1 链表和其他结构 225

19.2 实例研究 225

19.3 组成部件 226

19.4 学会使用面向对象的方式进行程序设计 234

19.5 小结 234

19.6 问与答 235

第六部分 特别主题 237

第20章 特殊的类与函数 237

20.1 静态成员数据 237

20.2 静态成员函数 239

20.3 包容 241

20.3.1 访问被包容类的成员 246

20.3.4 值复制与引用复制 247

20.4 友元类 247

20.3.3 包容的开销 247

20.3.2 对被包容成员的选择性访问 247

20.5 友元函数 248

20.6 函数指针 248

20.6.1 速记调用法 251

20.6.2 函数指针数组 251

20.6.3 把函数指针传递给另一个函数 253

20.6.4 对函数指针使用typedef 255

20.7 成员函数指针 257

20.8 小结 261

20.9 问与答 262

第21章 预处理程序 263

21.1 预处理程序和编译程序 263

21.2 查看中间格式 263

21.3 使用#define 263

21.3.1 将#define用于常量 264

21.3.2 将#define用于测试 264

21.3.3 #velse预编译命令 264

21.4 包含与包含警戒 265

21.4.3 条件编译 266

21.5 函数宏 266

21.4.2 取消定义 266

21.4.1 在命令行进行定义 266

21.5.1 为什么要使用括号 267

21.5.2 宏、函数和模板 268

21.6 串的处理 269

21.6.1 串转换 269

21.6.2 连接 269

21.7 预定义宏 270

21.8 小结 281

21.9 问与答 282

22.2 模拟一个报警系统 283

22.1 开发过程 283

第22章 面向对象的分析和设计 283

第七部分 高级主题 283

22.2.1 概念表达 284

22.2.2 分析需求 284

22.2.3 高层设计和低层设计 284

22.2.4 其他对象 285

22.2.5 类的设计 285

22.2.6 如何报警 286

22.2.7 事件循环 286

22.3 实例研究:PostMaster 288

22.3.1 权衡并取舍 289

22.3.2 功能分解并逐步求精 289

22.3.3 信息格式 289

22.3.5 有根与无根的层次结构 290

22.3.4 最初的类的设计 290

22.3.6 设计接口 292

22.3.7 创建一个原型 293

22.3.8 80/80法则 293

22.3.9 设计PostMasterMessage类 293

22.3.10 应用程序接口 294

22.3.11 分组进行 295

22.3.12 继续进行设计 295

22.3.13 使用驱动程序 296

22.4 小结 303

22.5 问与答 303

23.2 参数化类型 304

23.3 模板的定义 304

第23章 模板 304

23.1 什么是模板 304

23.4 使用模板项 312

23.5 标准模板库 319

23.6 小结 320

23.7 问与答 320

第24章 异常和出错处理 321

24.1 程序死区、错误和损坏的代码 321

24.2 异常 322

24.3.3 通过引用传递和多态的方式处理异常 327

24.3.2 多于一个的catch语句 327

24.3.1 处理异常 327

24.3 使用try语句块和catch语句块 327

24.4 以下的步骤 332

24.5 风格 332

24.5.1 花括号 332

24.5.2 过长的行 332

24.5.3 switch语句 332

24.5.4 程序文本 333

24.5.5 标识符 333

24.5.6 标识符的拼写和大写 334

24.5.7 注释 334

24.5.8 访问权限 334

24.6 后记 335

24.6.2 所需的读物 335

24.6.1 到哪里获得帮助和建议 335

24.5.9 类的定义 335

24.5.12 const 335

24.5.11 asset() 335

24.5.10 include文件 335

24.6.3 杂志 336

24.6.4 保持联系 336

第八部分 附录 337

附录A 运算符优先级 337

附录B C++关键字 338

返回顶部