图书介绍
C++ Primer中文版pdf电子书版本下载
- (美)Stanley B.Lippman,(美)Josee Lajoie著;潘爱民,张丽译 著
- 出版社: 北京:中国电力出版社
- ISBN:7508309898
- 出版时间:2002
- 标注页数:1033页
- 文件大小:37MB
- 文件页数:1062页
- 主题词:
PDF下载
下载说明
C++ Primer中文版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一篇 C++概述 3
第1章 开始 3
1.1 问题的解决 3
1.2 C++程序 4
1.2.1 程序流程控制 8
1.3 预处理器指示符 10
1.4 注释 13
1.5 输入/输出初步 15
1.5.1 文件输入和输出 16
第2章 C++浏览 18
2.1 内置数组数据类型 18
2.2 动态内存分配和指针 21
2.3 基于对象的设计 23
2.4 面向对象的设计 32
2.5 泛型设计 40
2.6 基于异常的设计 46
2.7 用其他名字来命名数组 49
2.8 标准数组——向量 54
第二篇 基本语言 61
第3章 C++数据类型 61
3.1 文字常量 61
3.2 变量 64
3.2.1 什么是变量? 66
3.2.2 变量名 68
3.2.3 对象的定义 69
3.3 指针类型 71
3.4 字符串类型 76
3.4.1 C风格字符串 76
3.4.2 字符串类型 78
3.5 const限定修饰符 83
3.6 引用类型 86
3.7 布尔类型 90
3.8 枚举类型 91
3.9 数组类型 93
3.9.1 多维数组 96
3.9.2 数组与指针类型的关系 97
3.10 vector容器类型 99
3.11 复数类型 103
3.12 typedef名字 103
3.13 volatile限定修饰符 104
3.14 Pair类型 105
3.15 类类型 106
第4章 表达式 116
4.1 什么是表达式? 116
4.2 算术操作符 118
4.3 等于、关系和逻辑操作符 120
4.4 赋值操作符 123
4.5 递增和递减操作符 126
4.6 复数操作 128
4.7 条件操作符 131
4.8 sizeof操作符 132
4.9 new和delete表达式 134
4.10 逗号操作符 135
4.11 位操作符 136
4.12 bitset操作 139
4.13 优先级 142
4.14 类型转换 146
4.14.1 隐式类型转换 147
4.14.2 算术转换 148
4.14.3 显式转换 149
4.14.4 旧式强制类型转换 153
4.15 栈类实例 154
第5章 语句 159
5.1 简单语句和复合语句 159
5.2 声明语句 160
5.3 if语句 163
5.4 switch语句 170
5.5 for循环语句 176
5.6 while语句 180
5.7 do while语句 182
5.8 break语句 183
5.9 continue语句 184
5.10 goto语句 185
5.11 链表示例 186
5.11.1 给出一个通用链表类 203
第6章 抽象容器类型 209
6.1 我们的文本查询系统 209
6.2 vector还是list? 213
6.3 vecror怎样自己增长 214
6.4 定义一个顺序容器 217
6.5 迭代器 221
6.6 顺序容器操作 224
6.6.1 删除操作 226
6.6.2 赋值和对换 227
6.6.3 泛型算法 227
6.7 存储文本行 228
6.8 找到一个子串 231
6.9 处理标点符号 236
6.10 任意其他格式的字符串 239
6.11 其他string操作 241
6.12 生成文本位置map 247
6.12.1 定义并生成map 247
6.12.2 查找并获取map中的元素 251
6.12.3 对map进行迭代 252
6.12.4 单词转换map 253
6.12.5 从map中删除元素 255
6.13 创建单词排除集 256
6.13.1 定义set并放入元素 256
6.13.2 搜索一个元素 257
6.13.3 迭代一个set对象 257
6.14 完整的程序 258
6.15 multimap和multiset 267
6.16 栈 269
6.17 队列和优先级队列 271
6.18 回顾iStack类 272
第三篇 基于过程的程序设计 277
第7章 函数 277
7.1 概述 277
7.2 函数原型 279
7.2.1 函数返回类型 279
7.2.2 函数参数表 280
7.2.3 参数类型检查 281
7.3 参数传递 282
7.3.1 引用参数 284
7.3.2 引用和指针参数的关系 286
7.3.3 数组参数 289
7.3.4 抽象容器类型参数 291
7.3.5 缺省实参 293
7.3.6 省略号(ellipse) 295
7.4 返回一个值 297
7.4.1 参数和返回值与全局对象 300
7.5 递归 301
7.6 inline函数 302
7.7 链接指示符:extern“C” 304
7.8 main():处理命令行选项 306
7.8.1 一个处理命令行的类 313
7.9 指向函数的指针 315
7.9.1 指向函数的指针的类型 316
7.9.2 初始化和赋值 317
7.9.3 调用 317
7.9.4 函数指针的数组 318
7.9.5 参数和返回类型 319
7.9.6 指向extern“C”函数的指针 322
第8章 域和生命期 325
8.1 域 325
8.1.1 局部域 327
8.2 全局对象和函数 330
8.2.1 声明和定义 330
8.2.2 不同文件之间声明的匹配 331
8.2.3 谈谈头文件 333
8.3 局部对象 335
8.3.1 自动对象 335
8.3.2 寄存器自动对象 336
8.3.3 静态局部对象 337
8.4 动态分配的对象 338
8.4.1 单个对象的动态分配与释放 339
8.4.2 auto_ptr 341
8.4.3 数组的动态分配与释放 345
8.4.4 常量对象的动态分配与释放 346
8.4.5 定位new表达式 347
8.5 名字空间定义 349
8.5.1 名字空间定义 351
8.5.2 域操作符(∷) 353
8.5.3 嵌套名字空间 354
8.5.4 名字空间成员定义 356
8.5.5 ODR和名字空间成员 358
8.5.6 未命名的名字空间 359
8.6 使用名字空间成员 361
8.6.1 名字空间别名 361
8.6.2 using声明 362
8.6.3 using指示符 363
8.6.4 标准名字空间std 366
第9章 重载函数 369
9.1 重载函数声明 369
9.1.1 为什么要重载一个函数名 369
9.1.2 怎样重载一个函数名 370
9.1.3 何时不重载一个函数名 372
9.1.4 重载与域 373
9.1.5 extern“C”和重载函数 376
9.1.6 指向重载函数的指针 377
9.1.7 类型安全链接 378
9.2 重载解析的三个步骤 379
9.3 参数类型转换 381
9.3.1 精确匹配的细节 382
9.3.2 提升的细节 386
9.3.3 标准转换的细节 388
9.3.4 引用 391
9.4 函数重载解析细节 393
9.4.1 候选函数 394
9.4.2 可行函数 397
9.4.3 最佳可行函数 399
9.4.4 缺省实参 403
第10章 函数模板 405
10.1 函数模板定义 405
10.2 函数模板实例化 411
10.3 模板实参推演 414
10.4 显式模板实参 417
10.5 模板编译模式 420
10.5.1 包含编译模式 421
10.5.2 分离编译模式 421
10.5.3 显式实例化声明 423
10.6 模板显式特化 424
10.7 重载函数模板 428
10.8 考虑模板函数实例的重载解析 431
10.9 模板定义中的名字解析 437
10.10 名字空间和函数模板 442
10.11 函数模板示例 446
第11章 异常处理 449
11.1 抛出异常 449
11.2 try块 452
11.3 捕获异常 455
11.3.1 异常对象 456
11.3.2 栈展开 459
11.3.3 重新抛出 459
11.3.4 catch-all处理代码 461
11.4 异常规范 463
11.4.1 异常规范与函数指针 465
11.5 异常与设计事项 466
第12章 泛型算法 468
12.1 概述 468
12.2 使用泛型算述 471
12.3 函数对象 481
12.3.1 预定义函数对象 482
12.3.2 算术函数对象 484
12.3.3 关系函数对象 484
12.3.4 逻辑函数对象 485
12.3.5 函数对象的函数适配器 486
12.3.6 实现函数对象 486
12.4 回顾iterator 488
12.4.1 插入iterator 488
12.4.2 反向iterator 489
12.4.3 iostream iterator 490
12.4.4 istream_iterator 491
12.4.5 ostream_iterator 492
12.4.6 五种iterator 493
12.5 泛型算法 494
12.5.1 查找算法 495
12.5.2 排序和通用整序算法 495
12.5.3 删除和替换算法 496
12.5.4 排列组合算法 496
12.5.5 算术算法 496
12.5.6 生成和异变算法 496
12.5.7 关系算法 496
12.5.8 集合算法 497
12.5.9 堆算法 497
12.6 何时不用泛型算法 497
12.6.1 list∷merge() 498
12.6.2 list∷remove() 498
12.6.3 list∷remove_if() 498
12.6.4 list∷reverse() 499
12.6.5 list∷sort() 499
12.6.6 list∷splice() 499
12.6.7 list∷unique() 500
第四篇 基于对象的程序设计 503
第13章 类 503
13.1 类定义 503
13.1.1 数据成员 504
13.1.2 成员函数 505
13.1.3 成员访问 506
13.1.4 友元 507
13.1.5 类声明和类定义 508
13.2 类对象 509
13.3 类成员函数 511
13.3.1 inline和非inline成员函数 512
13.3.2 访问类成员 513
13.3.3 私有与公有成员函数 514
13.3.4 特殊的成员函数 517
13.3.5 const和volatile成员函数 517
13.3.6 mutable数据成员 520
13.4 隐含的this指针 521
13.4.1 何时使用this指针 523
13.5 静态类成员 525
13.5.1 静态成员函数 529
13.6 指向类成员的指针 532
13.6.1 类成员的类型 534
13.6.2 使用指向类成员的指针 536
13.6.3 静态类成员的指针 538
13.7 联合:一个节省空间的类 539
13.8 位域(bit-field):一种节省空间的成员 544
13.9 类域 545
13.9.1 类域中的名字解析 548
13.10 嵌套类 551
13.10.1 在嵌套类域中的名字解析 557
13.11 作为名字空间成员的类 559
13.12 局部类 562
第14章 类的初始化、赋值和析构 565
14.1 类的初始化 565
14.2 类的构造函数 567
14.2.1 缺省构造函数 572
14.2.2 限制对象创建 573
14.2.3 拷贝构造函数 574
14.3 类的析构函数 576
14.3.1 显式的析构调用 579
14.3.2 可能出现的程序代码膨胀 579
14.4 类对象数组和vector 581
14.4.1 堆数组的初始化 583
14.4.2 类对象的vector 585
14.5 成员初始化表 587
14.6 按成员初始化 592
14.6.1 成员类对象的初始化 595
14.7 按成员赋值 597
14.8 效率问题 600
第15章 重载操作符和用户定义的转换 605
15.1 操作符重载 605
15.1.1 类成员与非成员 608
15.1.2 重载操作符的名字 611
15.1.3 重载操作符的设计 612
15.2 友元 614
15.3 操作符= 616
15.4 操作符[] 618
15.5 操作符operator() 619
15.6 操作符-> 620
15.7 操作符++和-- 622
15.8 操作符new和delete 626
15.8.1 数组操作符new[]和delete[] 629
15.8.2 定位操作符new()和delete() 631
15.9 用户定义的转换 633
15.9.1 转换函数 636
15.9.2 用构造函数作为转换函数 640
15.10 选择一个转换 642
15.10.1 函数重载解析——回顾 644
15.10.2 候选函数 645
15.10.3 类域中的函数所调用的候选函数 647
15.10.4 对用户定义的转换序列划分等级 648
15.11 重载解析和成员函数 652
15.11.1 重载成员函数的声明 652
15.11.2 候选函数 653
15.11.3 可行函数 653
15.12 重载解析和操作符 656
15.12.1 候选的操作符函数 657
15.12.2 可行函数 660
15.12.3 二义性 661
第16章 类模板 664
16.1 类模板定义 664
16.1.1 Queue和QueueItem类模板的定义 669
16.2 类模板实例化 671
16.2.1 非类型参数的模板实参 675
16.3 类模板的成员函数 679
16.3.1 Queue和QueueItem模板成员函数 680
16.4 类模板中的友元声明 682
16.4.1 Queue和QueueItem的友元声明 684
16.5 类模板的静态数据成员 687
16.6 类模板的嵌套类型 689
16.7 成员模板 691
16.8 类模板和编译模式 695
16.8.1 包含编译模式 696
16.8.2 分离编译模式 697
16.8.3 显式实例声明 699
16.9 类模板特化 700
16.10 类模板部分特化 703
16.11 类模板中的名字解析 705
16.12 名字空间和类模板 707
16.13 模板数组类 709
第五篇 面向对象的程序设计 719
第17章 类继承和子类型 719
17.1 定义一个类层次结构 721
17.1.1 面向对象的设计 724
17.2 确定层次的成员 728
17.2.1 定义基类 728
17.2.2 定义派生类 732
17.2.3 小结 734
17.3 基类成员访问 736
17.4 基类和派生类的构造 743
17.4.1 基类构造函数 744
17.4.2 派生类构造函数 745
17.4.3 另外一个类层次结构 746
17.4.4 迟缓型错误检测(Lazy error detection) 749
17.4.5 析构函数 749
17.5 基类和派生类虚拟函数 751
17.5.1 虚拟的输入/输出 753
17.5.2 纯虚拟函数 757
17.5.3 虚拟函数的静态调用 759
17.5.4 虚拟函数和缺省实参 760
17.5.5 虚拟析构函数 762
17.5.6 eval()虚拟函数 764
17.5.7 虚拟new操作符 768
17.5.8 虚拟函数、构造函数和析构函数 770
17.6 按成员初始化和赋值 772
17.7 UserQuery管理类 776
17.7.1 定义UserQuery类 780
17.8 组合起来 784
第18章 多继承和虚拟继承 790
18.1 准备阶段 790
18.2 多继承 794
18.3 public、private和protected继承 800
18.3.1 继承与组合(composition) 802
18.3.2 免除(exempting)个别成员的私有继承影响 803
18.3.3 protected继承 804
18.3.4 对象组合 804
18.4 继承下的类域 806
18.4.1 多继承下的类域 809
18.5 虚拟继承 813
18.5.1 虚拟基类声明 815
18.5.2 特殊的初始化语义 816
18.5.3 构造函数与析构函数顺序 819
18.5.4 虚拟基类成员的可视性 820
18.6 多继承及虚拟继承实例 823
18.6.1 带有范围检查的Array派生类 825
18.6.2 排序的Array派生类 827
18.6.3 多重派生的Array类 832
第19章 C++中继承的用法 835
19.1 RTTI 835
19.1.1 dynamic_cast操作符 836
19.1.2 typeid操作符 840
19.1.3 type_info类 842
19.2 异常和继承 845
19.2.1 定义为类层次结构的异常 845
19.2.2 抛出类类型的异常 846
19.2.3 处理类类型的异常 847
19.2.4 异常对象和虚拟函数 849
19.2.5 栈展开和析构函数调用 851
19.2.6 异常规范 852
19.2.7 构造函数和函数try块 854
19.2.8 C++标准库的异常类层次结构 855
19.3 重载解析过程和继承 859
19.3.1 候选函数 859
19.3.2 可行函数和用户定义的转换序列 862
19.3.3 最佳可行函数 864
第20章 iostream库 868
20.1 输出操作符<< 872
20.2 输入 876
20.2.1 字符串输入 880
20.3 其他输入/输出操作符 886
20.4 重载输出操作符<< 891
20.5 重载输入操作符>> 895
20.6 文件输入和输出 897
20.7 条件状态 906
20.8 string流 908
20.9 格式状态 911
20.10 强类型库 917
附录 泛型算法(按字母排序) 919
accumulate() 920
adjacent_difference() 921
adjacent_find() 922
binary_search() 923
copy() 924
copy_backward() 925
count() 926
count_if() 927
equal() 929
equal_range() 930
fill() 932
fill_n() 933
find() 934
find_if() 935
find_end() 936
find_first_of() 937
for_each() 939
generate() 939
generate_n() 940
includes() 941
inner_product() 942
inplace_merge() 943
iter_swap() 944
lexicographical_compare() 945
lower_bound() 947
max() 948
max_element() 948
min() 948
min_element() 949
merge() 950
mismatch() 951
next_permutation() 952
nth_element() 953
partial_sort() 954
partial_sort_copy() 955
partial_sum() 956
partition() 957
prev_permutation() 958
random_shuffle() 959
remove() 960
remove_copy() 960
remove_if() 961
remove_copy_if() 961
replace() 962
replace_copy() 963
replace_if() 964
replace_copy_if() 964
reverse() 965
reverse_copy() 965
rotate() 966
rotate_copy() 966
search() 967
search_n() 968
set_difference() 969
set_intersection() 970
set_symmetric_difference() 970
set_union() 971
sort() 972
stable_partition() 973
stable_sort() 974
swap() 975
swap_range() 975
transform() 977
unique() 978
unique_copy() 978
upper_bound() 980
堆算法 981
make_heap() 981
pop_heap() 981
push_heap() 982
sort_heap() 982
英汉对照索引 984