《C++基础教程》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)Herbert Schildt著;张林娣译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2002
  • ISBN:7302060991
  • 页数:489 页
图书介绍:国外计算机科学经典教材:本书讲解了C++的基础知识和编写C++程序的基本技能,内容涵盖C++所有的核心概念,同时也讲述了程序流程控制、数组、字符串和指针、异常处理等一些高级主题。

第1章 C++基础 1

1.1 C++简史 1

1.1.1 C语言:现代编程的开端 2

1.1.2 对C++的需求 2

1.1.3 C++的诞生 3

1.2 C++的演化 3

1.3 C++同Java与C#的关系 4

1.4 面向对象编程 5

1.4.1 封装性 6

1.4.2 多态性 6

1.4.3 继承性 7

1.5 第一个简单程序 8

1.5.1 键入程序 8

1.5.2 编译程序 8

1.5.3 运行程序 9

1.5.4 逐行讲解第一个示例程序 10

1.6 处理语法错误 11

1.7 另一个简单的程序 12

1.8 使用运算符 13

1.9 读取键盘输入 15

1.10 一些输出选项 16

1.11 另一种数据类型 18

1.12 两条控制语句 21

1.12.1 if语句 21

1.12.2 for循环 23

1.13 使用代码块 24

1.14 分号与定位 26

1.15 函数介绍 29

1.16 C++的库 30

1.17 C++的关键字 31

1.18 标识符 32

第2章 数据类型和运算符 34

2.1 数据类型的重要意义 34

2.2 C++的数据类型 34

2.2.1 整型数据 37

2.2.2 字符型数据 38

2.2.3 浮点型数据 39

2.2.4 布尔型数据 40

2.2.5 空型数据 41

2.3 字面值 43

2.3.1 十六进制和八进制的字面值 44

2.3.2 字符串字面值 45

2.3.3 字符转义序列 45

2.4 变量详解 46

2.4.1 初始化变量 47

2.4.2 动态初始化 47

2.5 运算符 48

2.6 算术运算符 48

2.7 关系运算符和逻辑运算符 50

2.8 赋值运算符 55

2.8.1 复合赋值运算符 55

2.8.2 赋值运算中的类型转换 56

2.9 表达式 57

2.10 表达式中的类型转换 57

2.10.1 布尔型的转换 57

2.10.2 类型强制转换 57

2.11 空格和圆括号 58

第3章 程序控制语句 63

3.1 if语句 63

3.1.1 条件表达式 65

3.1.2 嵌套的if语句 66

3.1.3 if-else-if阶梯语句 67

3.2 switch语句 68

3.3 for循环语句 75

3.3.1 for循环语句的一些变化 77

3.3.2 可以缺少的部分 78

3.3.3 无限for循环 79

3.3.4 无循环体的循环 79

3.3.5 在for语句循环体内声明循环控制变量 80

3.4 while循环语句 81

3.5 do-while循环 83

3.6 使用break语句从循环中退出 88

3.7 使用continue语句 90

3.8 嵌套的循环 95

3.9 使用goto语句 96

第4章 数组、字符串和指针 99

4.1 一维数组 99

4.2 二维数组 103

4.3 多维数组 105

4.4 字符串 107

4.4.1 字符串基本知识 107

4.4.2 从键盘中读取字符串 108

4.5 一些字符串库函数 110

4.5.1 strcpy函数 110

4.5.2 strcat函数 110

4.5.3 strcmp函数 110

4.5.4 strlen函数 111

4.5.5 字符串函数实例 111

4.5.6 使用空终结符 112

4.6 数组的初始化 113

4.7 字符串数组 117

4.8 指针 119

4.9 指针的概念 119

4.10 指针运算符 119

4.10.1 指针的基本类型很重要 121

4.10.2 通过指针赋值 122

4.11 指针表达式 123

4.11.1 指针运算 123

4.11.2 指针比较 124

4.12 指针和数组 125

4.13 字符串常量 129

4.14 指针数组 132

4.15 空指针的约定 134

4.16 多重间接访问 134

第5章 函数简介 137

5.1 函数的基础知识 137

5.1.1 函数的通式 137

5.1.2 创建函数 138

5.1.3 使用实际参数 139

5.1.4 使用return语句 141

5.1.5 返回值 143

5.1.6 在表达式中使用函数 145

5.2 作用域法则 146

5.2.1 局部作用域 146

5.2.2 全局作用域 151

5.3 将指针和数组传递给函数 153

5.3.1 传递指针 153

5.3.2 传递数组 155

5.3.3 传递字符串 157

5.4 返回指针 158

5.5 main()函数 160

5.5.1 argc和argv:main()函数的参数 160

5.5.2 传递数字命令行参数 161

5.6 函数原型 163

5.7 递归 165

第6章 函数详解 172

6.1 传递参数的方法 172

6.1.1 C++如何传递参数 172

6.1.2 使用指针创建引用调用 173

6.2 引用参数 175

6.2.1 返回引用 179

6.2.2 独立引用 181

6.2.3 使用引用时的几个限制 182

6.3 函数重载 183

6.4 默认的函数参数 195

6.4.1 默认参数与重载 196

6.4.2 正确使用默认参数 198

6.5 函数重载和多义性 199

第7章 更多数据类型和运算符 203

7.1 const和volatile限定符 203

7.1.1 const限定符 203

7.1.2 volatile限定符 205

7.2 存储类说明符 206

7.2.1 auto说明符 206

7.2.2 extern说明符 206

7.2.3 static变量 208

7.2.4 register变量 211

7.3 枚举 213

7.4 typedef关键字 216

7.5 按位运算符 216

7.5.1 AND、OR、XOR和NOT运算符 217

7.5.2 移位运算符 222

7.6 ?运算符 228

7.7 逗号运算符 230

7.8 多重赋值 231

7.9 复合赋值 231

7.10 使用sizeof运算符 232

7.11 关于优先级的小结 233

第8章 类和对象 235

8.1 类的基础知识 235

8.1.1 类的通式 235

8.1.2 定义类 236

8.1.3 向类中添加函数 240

8.2 构造函数和析构函数 248

8.2.1 带参数的构造函数 250

8.2.2 将一个构造函数添加到Vehicle类中 252

8.2.3 另一种可以选择的初始化方法 253

8.3 内联函数 255

8.4 对象数组 263

8.5 指向对象的指针 266

8.6 对象引用 268

第9章 类的详解 270

9.1 重载构造函数 270

9.2 对象赋值 271

9.3 将对象传递给函数 273

9.3.1 构造函数、析构函数和对象传递 274

9.3.2 通过引用传递对象 276

9.3.3 传递对象时的潜在问题 277

9.4 返回对象 278

9.5 创建和使用复制构造函数 280

9.6 友元函数 283

9.7 结构体和共用体 287

9.7.1 结构体 288

9.7.2 共用体 289

9.7.3 匿名共用体 291

9.8 This关键字 292

9.9 运算符重载 293

9.10 使用成员函数进行运算符重载 294

9.10.1 顺序的重要性 297

9.10.2 使用成员函数重载一元运算符 298

9.11 非成员运算符函数 302

9.11.1 使用友元重载一元运算符 306

9.11.2 运算符重载的技巧和限制 308

第10章 继承、虚函数和多态性 319

10.1 继承基础 319

10.2 基类访问控制 325

10.3 使用受保护的成员 327

10.4 构造函数和继承 329

10.5 创建多层层次结构 338

10.6 继承多个基类 342

10.7 构造函数和析构函数执行的顺序 343

10.8 指向派生类型的指针 344

10.9 虚函数和多态性 345

10.9.1 虚函数基础知识 345

10.9.2 继承虚函数 347

10.9.3 使用虚函数的原因 349

10.10 应用虚函数 349

10.11 纯虚函数和抽象类 353

第11章 C++ I/O系统 358

11.1 对早期和现代的C++ I/O进行比较 358

11.2 C++流 359

11.3 C++流类 360

11.4 重载I/O运算符 361

11.4.1 创建插入函数 361

11.4.2 使用友元函数重载插入函数 363

11.4.3 重载提取函数 364

11.5 格式化I/O 366

11.5.1 使用ios成员函数进行格式化 366

11.5.2 使用I/O操控符 371

11.5.3 创建自己的操控符函数 373

11.6 文件I/O 375

11.6.1 打开和关闭文件 375

11.6.2 读写文本文件 377

11.6.3 非格式化和二进制I/O 379

11.6.4 读写数据块 381

11.7 更多的I/O函数 383

11.7.1 更多的get()版本 383

11.7.2 getline() 384

11.7.3 检测EOF 384

11.7.4 peek()和putback() 384

11.7.5 flush() 384

11.8 随机存取 388

11.9 检查I/O状态 391

第12章 异常、模板和其他高级主题 393

12.1 异常处理 393

12.1.1 异常处理基础知识 393

12.1.2 使用多个catch语句 398

12.1.3 捕获所有异常 400

12.1.4 指定由函数抛出的异常 401

12.1.5 再次抛出异常 403

12.2 模板 404

12.2.1 通用函数 404

12.2.2 具有两个通用类型的函数 406

12.2.3 显式重载通用函数 407

12.2.4 通用类 409

12.2.5 显式的类特化 411

12.3 动态分配 416

12.3.1 初始化分配的内存 418

12.3.2 分配数组 419

12.3.3 分配对象 420

12.4 命名空间 423

12.4.1 命名空间基础知识 424

12.4.2 using语句 427

12.4.3 匿名命名空间 429

12.4.4 std命名空间 429

12.5 静态类成员 430

12.5.1 静态成员变量 430

12.5.2 静态成员函数 432

12.6 运行时类型标识(RTTI) 434

12.7 强制类型转换运算符 437

12.7.1 dynamic_cast 438

12.7.2 const_cast 438

12.7.3 static_cast 439

12.7.4 reinterpret_cast 439

12.8 接下来做什么 439

附录A 测验答案 441

第1章 C++基础 441

第2章 数据类型和运算符 443

第3章 程序控制语句 444

第4章 数组、字符串和指针 446

第5章 函数简介 449

第6章 函数详解 452

第7章 更多数据类型和运算符 457

第8章 类和对象 460

第9章 类的详解 464

第10章 继承、虚函数和多态性 466

第11章 C++ I/O系统 466

第12章 异常、模板及其他高级主题 469

附录B 预处理器 478

B.1 #define 478

B.2 类函数宏 479

B.3 #error 481

B.4 #include 481

B.5 条件编译指令 482

B.5.1 #if、#else、#elif和#endif 482

B.5.2 #ifdef和#ifndef 484

B.5.3 #undef 485

B.5.4 使用defined 485

B.6 #line 485

B.7 #pragma 486

B.8 #和##预处理器运算符 486

B.9 预定义的宏名 487

附录C 使用旧版本C++编译器 488