《C++使用指南》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:(美)(R.麦格雷戈)RobMcGregor著;韩毅刚,周宇,严春莹等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:1999
  • ISBN:7505350870
  • 页数:648 页
图书介绍:

第一部分 C++基础 1

第1章 初识C++ 1

创建一个C++程序 1

编写源代码 2

编译和连接源文件 3

测试你的代码 4

大小写的敏感性 4

函数简介 5

函数的声明 6

制作三明治:学习如何解决问题 7

创建和使用代码块 7

main()函数简介 8

使用C风格和C++风格的注释 10

C风格的注释 10

C++风格的注释 11

重要的C++关键字 12

使用基本的输入/输出流 13

了解输入/输出流是C++的对象 13

使用#include指令 14

标准输出流 15

标准输入流 18

标准错误流 20

第2章 探究C++数据类型、变量和常量 21

掌握C++数据类型 21

探究基本数据类型 21

派生数据类型简介 28

标准串简介 30

使用变量 30

声明和定义变量 31

初始化变量 32

使用命名常量 33

声明和初始化命名常量 34

常量的类型 34

在源代码中使用命名常量 35

决定变量和常量的作用域 36

理解声明和定义 38

声明的描述符和声明符 39

指明连接 40

指明存储类 40

转换数据类型 41

隐式转换 41

显式转换 42

第3章 剖析表达式和语句 43

概述 43

掌握表达式 43

使用运算符和操作数 44

初级表达式 44

后缀运算符和后缀表达式 45

单目运算符表达式 46

双目运算符表达式 48

指针-成员运算符表达式 49

条件运算符表达式 49

显式转换表达式 49

使用语句 50

表达式语句 50

复合语句 51

选择语句 51

迭代语句 52

声明语句 53

跳转语句 53

标号语句 54

第4章 使用条件表达式和选择语句 56

使用布尔条件和表达式 56

掌握布尔表达式 56

使用逻辑运算符 58

用真值表求布尔条件的值 62

使用条件运算符 66

掌握运算符优先级 66

使用选择语句 67

使用if语句 67

使用switch语句 70

使用枚举 72

第5章 建立迭代循环 75

为什么使用循环? 75

循环执行的阶段 76

剖析迭代语句 76

使用for语句 76

使用while语句 82

使用do语句 85

设计循环 88

设计交互式程序控制流 89

使用break和continue用于较大的循环控制 90

使用嵌套循环 91

集成循环语句 92

第6章 使用数组 98

为什么使用数组? 98

掌握一维数组 99

定义一个数组 100

访问数组元素 100

通过迭代访问数组元素 101

在声明时初始化一维数组 103

使用并行数组 104

掌握二维数组 107

处理二维数组 108

按列工作 109

按行工作 111

实现一个乘法表 113

多维数组 117

第7章 创建和使用函数 122

为什么使用函数? 122

函数的各种类型 123

无值函数 123

返回值的函数 124

内嵌函数 127

函数的成员 129

函数返回类型和值 129

函数参数 130

缺省参数 131

创建自己的函数 132

声明一个函数 132

定义一个函数 132

使用局部变量 132

使用命令行变元 133

获取变元个数 134

获取并使用变元 134

使用变量-变元表 141

获得模块化函数 144

指定函数连接 147

第二部分 提高篇 149

第8章 函数重载 149

为什么使用函数重载 149

函数重载的类型 153

参数重载类型 153

通过运算符重载函数 155

检查重载函数的内部 159

为了安全的类型连接而进行函数名字碾压 159

函数调用和堆栈 160

第9章 使用结构和联合 163

用结构创建新的数据类型 163

增加结构数据类型的数据成员 164

创建结构数组 169

结构作为数据成员 170

介绍一个工资册处理程序 172

剖析一下工资处理程序 177

增加函数作为数据成员 179

使用联合以获得高效的存储 181

访问联合的数据成员 182

把结构定义为联合的成员 183

把联合定义为结构的成员 188

第10章 使用指针和引用 189

概述 189

理解指针 189

为什么使用指针 189

内存地址 190

声明一个指针 190

对指针反引用 193

使指针指向结构 194

使用指针指向成员符号 195

使用指针作为函数的参数 197

把数组用做指针 198

把数组传给函数 198

使用指针运算 203

理解引用 205

声明和初始化引用 205

使用引用作为函数的参数 206

引用作为函数的返回值 206

第11章 C++中的内存分配 210

静态内存分配 210

分配动态内存 211

堆栈 211

空闲存储区(堆) 211

使用new和delete操作符 212

使用new操作符 212

使用delete操作符 213

数组内存分配 217

创建动态结构数组 219

处理分配错误 221

检测内存分配失败 221

使用函数set_new_handler() 222

创建你自己的new和delete操作符 225

第12章 理解预处理 226

引入预处理器 226

理解预处理状态 227

理解预处理指令 227

文件包含 228

定义和删除标识符 230

条件编译 231

错误输出 236

理解编译指示 236

探索宏 237

宏定义 237

宏展开 239

使用预处理操作符 240

使用操作符# 240

使用操作符## 241

考虑国际通用问题 242

两字符序列 242

三字符序列 243

关键字序列 243

检查预定义宏 244

第13章 创建和使用函数指针 248

函数为什么会有指针? 248

声明指向函数的指针的一些原因 248

声明和使用函数指针 248

声明一个新的数据类型 251

使用函数指针类型 251

创建函数指针数组 253

使用指向重载函数的指针 258

使用指向成员函数的指针 260

第14章 重载运算符 263

为何需要重载运算符? 263

运算符就是函数调用 265

重载运算符 268

运算符重载的一些例子 271

重载赋值运算符 271

重载关系运算符 272

重载函数调用运算符 274

第15章 用调试声明和异常保护程序 277

设计错误处理策略 277

处理运行时错误 277

处理编程错误 277

使用调试声明 277

理解assert()宏 278

使用调试声明的一些原则 279

演示调试声明的使用方法 279

处理异常 285

try块 285

catch异常处理器 286

throw语句 287

使用异常处理 287

捕获意外的异常 290

清除已分配的资源 292

第16章 探索命名空间 294

什么是命名空间? 294

声明命名空间 295

无名的命名空间 298

显式访问命名空间 300

using声明 300

using指令 303

使用命名空间的别名 305

使用复合的命名空间 306

全局的命名空间 307

标准的命名空间 308

第17章 内存分析的数学基础 309

概述 309

剖析计数体系的基数 310

回顾十进制计数体系(以10为基数) 310

分析二进制计数体系(以2为基数) 311

将二进制转换为十进制 311

将十进制转换为二进制 312

分析八进制计数体系(以8为基数) 313

将八进制转换为十进制 313

将十进制转换为八进制 313

基数转换程序:CONVERT 314

分析CONVERT程序 317

分析十六进制计数体系(以16为基数) 319

将十六进制转换为十进制 320

将十进制转换为十六进制 320

将十六进制转换为二进制 321

将二进制转换为十六进制 321

第18章 位操作 322

使用位 322

理解位计数方式 322

理解位字段 323

声明位字段 323

使用位字段 324

使用位运算符 326

位与(AND)运算符 327

位或(OR)运算符 330

位异或(XOR)运算符 331

取反(NOT)运算符 334

对有符号数和无符号数中的位进行操作 337

移位运算 337

使用左移运算符 337

使用右移运算符 337

第19章 编译、连接和调试 343

分析编译器 343

理解编译器的工作原理 343

生成的目标代码 343

修正编译错误 344

分析连接器 345

修正连接错误 346

利用make文件使生成可执行程序的过程自动化 347

寻找并修复代码中的瑕疵 348

增加调试代码 348

使用预处理器进行调试 348

测试和调试的策略 352

第三部分 面向对象编程 359

第20章 面向对象编程简介 359

面向对象编程的基本概念 359

从面向过程编程到面向对象编程 359

关于对象的概念 360

继承 362

多态和虚拟访问方法简介 363

面向对象软件设计的策略 364

虚拟函数、继承的数据成员和代码膨胀 365

了解C++中的对象和类 365

代码重用的好处 366

充分利用可重用代码 367

使用代码库 368

第21章 了解C++类 369

创建C++类 369

考虑类设计 369

封装数据 370

声明类 370

指定访问控制 371

公有访问说明 372

私有访问说明 372

指定保护访问 373

定义数据成员 374

定义非静态数据成员 374

定义静态数据成员 375

使用构造函数与析构函数 375

构造函数 376

析构函数 377

了解this指针 377

创建复制构造函数 381

创建成员运算符 383

定义成员函数 384

定义静态成员函数 385

定义非静态成员函数 387

使用指针-成员运算符表达式 387

设计与实现一个矩形类 390

设计CRect的接口 390

实现CRect类 393

第22章 实现类继承 397

了解基类与派生类 397

创建类层次体系 398

在层次体系中设计构造函数与析构函数 398

重载基类函数 401

基类和派生类作用域限定 402

调用基类函数 402

实现类层次体系 404

使用友员函数和友员类 408

使用友员函数 409

使用友员类 414

创建类库 414

为你的类创建一个二进制库 415

使用库 415

第23章 了解多态性 417

什么是多态性? 417

获取Virtual 417

了解虚函数 418

创建抽象基类 419

定义纯虚函数 419

了解虚表格 420

在层次体系中使用类指针 421

指针多态性 422

创建一个多态类层次体系 426

解决类切割问题 430

使用虚析构函数 432

第24章 在C++中实现动态存储 436

容器类 436

创建动态数组 436

创建动态数组类 437

实现动态数组类 443

创建驱动程序 448

创建链表 451

创建链表类 453

实现结点类 454

加入一个新结点 455

遍历链表 457

查找链表中的一项 457

插入一个结点 458

从链表中删除所有的结点 458

删除一个结点 459

链表类的接口 460

实现链表类 461

创建驱动程序 466

第25章 设计与开发面向对象的程序 471

解决问题的技巧 471

开发过程概述 471

分析系统需求 471

承担一个项目 472

构建系统需要的类 473

设计接口 475

使用模块化源文件 475

创建接口(头)文件 475

创建实现文件 478

设计类访问方法 479

运行中的接口 480

访问类的问题 480

测试与集成模块 480

避免多重定义 480

测试功能性 481

集成模块 482

重用代码 482

第26章 使用模板 483

模板的概念 483

避免冗余代码 483

创建函数模板 484

使用多重通用类的类型 486

创建基类模板 487

模板框架设计 488

充实模板 488

创建更复杂的类模板 489

将现有的类转化为类模板 491

创建通用链表类 492

实现通用结点类 492

分离类接口与实现的问题 494

改变链表类的接口和实现 495

添加一个结点 497

遍历链表 498

查找某项 498

插入一个结点 499

删除链表中的所有结点 499

删除一个结点 500

创建驱动程序 506

第27章 使用动态类型转换与运行时类型标识 511

获取和使用运行时类型信息 511

传统的类型转换体系(C语言形式) 511

新型的类型转换体系(C++形式) 511

使用dynamic_cast操作符 516

使用const_cast操作符 518

使用reinterpret_cast操作符 519

使用static_cast操作符 519

第四部分 使用标准C++库 523

第28章 标准C++库介绍 523

标准C++库概述 523

使用标准的命名空间 523

标识标准C++头文件 524

介绍标准模板库 525

使用标准C库 525

标识标准C++库中的成员 525

诊断 526

输入/输出 526

语言支持 527

定位 528

数值 528

串 528

实用工具 529

标识STL部件 529

算法 530

容器 530

迭代器 531

函数对象 531

适配器 532

分配符 532

第29章 使用迭代器和容器 533

理解迭代器 533

创建一个迭代类 536

标准迭代器的类型 540

探索迭代器操作 541

迭代器类 542

理解容器 545

顺序容器 545

关联容器 557

第30章 使用串 564

字符和标准串 564

创建字符串 564

标识国际业务 564

创建其他的串类型 565

定义字符特性 565

研究basic_string类 566

使用串操作符 567

串迭代器 568

串构造函数 568

使用串函数 570

第31章 使用数值 587

标识数值头文件 587

使用标准数学函数 587

产生随机数 588

使用复数 591

介绍valarrays 592

探究数值算法 593

accumulate算法 594

inner_product算法 596

Partial_sum算法 598

adjacent_difference算法 599

第32章 使用文件和流 602

使用流 602

识别流类型 602

介绍ios_base类 603

介绍basic_ios类 607

介绍basic_istream类 609

介绍basic_ostream类 610

介绍basic_iostream类 610

介绍basic_fstream类 610

使用流操纵符 611

创建格式化流数据 611

使用文件流 614

读写文本文件 614

使用多文件 616

读写二进制流文件 621

第33章 剖析算法 626

通用算法 626

探索不可修改序列算法 627

计数算法 627

查找算法 628

for_each算法 629

搜索算法 629

序列比较算法 630

探索修改序列算法 631

复制算法 632

填充与生成算法 633

替换算法 633

删除算法 634

反转与轮转算法 635

交换算法 636

transform算法 637

唯一算法 637

探索排序序列算法 638

二分搜索算法 639

归并算法 640

分割算法 641

集合操作算法 641

排序算法 643

探索堆操作算法 645

make_heap算法 645

pop_heap算法 645

push_heap算法 646

sort_heap算法 646

探索比较算法 646

lexicographical_compare算法 646

max算法 647

max_element算法 647

min算法 647

min_element算法 647

探索排列算法 648

next_permutation算法 648

prev_permutation算法 648