C++参考大全(第4版) pdf扫描版 PDF 免费下载

本书是根据著名C语言专家Herbert Schildt的著作翻译的。这是一本关于C++语言的百科全书,包括C 和C++的命令、功能、编程和应用等方面的内容。全书分为五个部分:C++基础:C子集;C++的专有特征;标准函数库;标准C++类库;C++应用程序范例。详细描述和演示了定义C++语言的关键字、语法、函数、类和特征。其中第一部分全面讨论了C++的C子集;第二部分详细介绍了C++本身的特性,如类和对象、构造函数、析构函数和模板等;第三部分描述了标准函数库;第四部分讨论了标准类库,包括STL(标准模板库);第五部分显示了两个应用C++和面向对象编程的实际例子。
  本书内容全面、翔实,是学习C++编程语言的广大学生的一部有用的工具书,也是对C++感兴趣的读者的必备参考书。

目录

第一部分  C++基础:C子集
第1章  C语言概述        3
1.1  C语言的起源和历史        3
1.2  C语言是中级语言        4
1.3  C语言是结构化语言        5
1.4  C语言是程序员的语言        6
1.5  C程序的结构        7
1.6  库和链接        8
1.7  分别编译        9
1.8  理解.C和.CPP文件扩展        9
第2章  表达式        10
2.1  五种基本数据类型        10
2.2  修饰基本类型        10
2.3  标识符名称        12
2.4  变量        12
2.5  const和volatile限定符        16
2.6  存储类限定符        18
2.7  变量初始化        22
2.8  常量        23
2.9  运算符        24
2.10 表达式        36
第3章  语句        40
3.1  C和C++中的真值和假值        40
3.2  选择语句        40
3.3  迭代语句        49
3.4  在选择和迭代语句内声明变量        57
3.5  跳转语句        57
3.6  表达式语句        62
3.7  块语句        62
第4章  数组和以null结束的字符串        63
4.1  一维数组        63
4.2  生成指向数组的指针        64
4.3  向函数传递一维数组        64
4.4  以null结束的字符串        65
4.5  二维数组        67
4.6  多维数组        71
4.7  带下标的指针        72
4.8  数组初始化        73
4.9  棋盘游戏实例        75
第5章  指针        79
5.1  什么是指针        79
5.2  指针变量        79
5.3  指针运算符        80
5.4  指针表达式        81
5.5  指针和数组        84
5.6  多级间址        85
5.7  初始化指针        86
5.8  指向函数的指针        87
5.9  C语言的动态分配函数        89
5.10 指针应用中的问题        91
第6章  函数        94
6.1  函数的一般形式        94
6.2  函数作用域的规则        94
6.3  函数变元        95
6.4  传给main( )的变元argc和argv        99
6.5  return语句        101
6.6  递归        105
6.7  函数原型        106
6.8  声明变长参数列表        108
6.9  传统的与现代的函数参数声明        108
第7章  结构、联合、枚举和用户定义的类型        110
7.1  结构        110
7.2  结构数组        113
7.3  向函数传递结构        113
7.4  结构指针        115
7.5  结构中的数组和结构        118
7.6  位域        118
7.7  联合        120
7.8  枚举        122
7.9  用sizeof来保证可移植性        124
7.10 typedef        125
第8章  C风格的控制台I/O        127
8.1  一个重要的应用说明        127
8.2  读写字符        128
8.3  读写字符串        130
8.4  格式化的控制台I/O        132
8.5  printf( )        132
8.6  scanf( )        137
第9章  文件I/O        143
9.1  C与C++的文件I/O        143
9.2  流和文件        143
9.3  流        143
9.4  文件        144
9.5  文件系统基础        144
9.6  fread( )和fwrite( )        153
9.7  fseek( )和随机访问I/O        155
9.8  fprintf( )和fscanf( )        156
9.9  标准流        157
第10章  预处理器和注释        160
10.1  预处理器        160
10.2  #define        160
10.3  #error        162
10.4  #include        162
10.5  条件编译指令        163
10.6  #undef        166
10.7  使用defined        166
10.8  #line        166
10.9  #pragma        167
10.10 #和##预处理器运算符        167
10.11 预定义的宏名        168
10.12 注释        168
第二部分  C++的专有特征
第11章  C++语言概述        172
11.1  C++的起源        172
11.2  什么是面向对象的程序设计        173
11.3  C++基础        174
11.4  老的C++与现代C++        179
11.5  C++的类        182
11.6  函数重载        185
11.7  运算符重载        187
11.8  继承        187
11.9  构造函数和析构函数        191
11.10 C++的关键字        194
11.11 C++程序的一般形式        195
第12章  类和对象        196
12.1  类        196
12.2  结构和类是相互关联的        198
12.3  联合和类是相互关联的        200
12.4  友元函数        201
12.5  友元类        205
12.6  内联函数        206
12.7  在类中定义内联函数        207
12.8  带参数的构造函数        208
12.9  带一个参数的构造函数:特例        210
12.10 静态类成员        211
12.11 何时执行构造函数和析构函数        216
12.12 作用域分辨符        217
12.13 嵌套类        217
12.14 局部类        217
12.15 向函数传递对象        218
12.16 返回对象        220
12.17 对象赋值        221
第13章  数组、指针、引用和动态分配运算符        222
13.1  对象数组        222
13.2  指向对象的指针        224
13.3  C++指针的类型检查        226
13.4  this指针        226
13.5  指向派生类型的指针        228
13.6  指向类成员的指针        229
13.7  引用        231
13.8  格式问题        236
13.9  C++的动态分配运算符        237
第14章  函数重载、拷贝构造函数和默认变元        245
14.1  函数重载        245
14.2  重载构造函数        246
14.3  拷贝构造函数        249
14.4  查找重载函数的地址        252
14.5  重载的过去与现在        253
14.6  默认的函数变元        253
14.7  函数重载和二义性        257
第15章  运算符重载        261
15.1  创建成员运算符函数        261
15.2  使用友元函数的运算符重载        266
15.3  重载new和delete        270
15.4  重载某些特殊运算符        277
15.5  重载逗号运算符        282
第16章  继承        284
16.1  基类访问控制        284
16.2  继承和保护成员        285
16.3  继承多个基类        289
16.4  构造函数、析构函数和继承        290
16.5  准许访问        296
16.6  虚基类        297
第17章  虚函数与多态性 302
17.1  虚函数        302
17.2  继承虚属性        305
17.3  虚函数是分层的        306
17.4   纯虚函数        308
17.5  使用虚函数        310
17.6  早期绑定与后期绑定        312
第18章  模板        313
18.1  通用函数        313
18.2  应用通用函数        319
18.3  通用类        322
18.4  关键字typename和export 330
18.5  模板的功用        331
第19章  异常处理        332
19.1  异常处理基础        332
19.2  处理派生类异常        338
19.3  异常处理选项        339
19.4  理解terminate( )和unexpected( )        343
19.5  uncaught_exception( )函数        345
19.6  exception和bad_exception类        345
19.7  异常处理的应用        345
第20章  C++输入/输出系统基础        347
20.1  老的C++ I/O与现代的C++ I/O        347
20.2  C++的流        347
20.3  C++的流类        348
20.4  格式化的I/O        349
20.5  重载<<和>>        358
第21章  C++文件的输入/输出        368
21.1  和文件类        368
21.2  打开和关闭文件        368
21.3  读写文本文件        370
21.4  无格式和二进制I/O        372
21.5  其他get( )函数        376
21.6  getline( )函数        376
21.7  检测EOF        377
21.8  ignore( )函数        379
21.9  peek( )和putback( )函数        379
21.10 flush( )函数        380
21.11 随机访问        380
21.12 I/O状态        383
21.13 定制的I/O和文件        384
第22章  运行时类型标识与强制转换运算符        387
22.1  运行时类型标识        387
22.2  强制转换运算符        394
22.3  dynamic_cast        394
第23章  名字空间、转换函数和其他高级主题        403
23.1  名字空间        403
23.2  std名字空间        409
23.3  创建转换函数        411
23.4  const成员函数与mutable        414
23.5  volatile成员函数        415
23.6  explicit构造函数        415
23.7  成员初始化语法        416
23.8  利用关键字asm 420
23.9  连接说明        421
23.10 基于数组的I/O        421
23.11 C与C++的区别        426
第24章  标准模板库        428
24.1  STL概述        428
24.2  容器类        430
24.3  一般的操作原理        431
24.4  vector容器        432
24.5  list容器        439
24.6  map容器 447
24.7  算法        452
24.8  使用函数对象        459
24.9  string类        464
24.10 关于STL的最后一点说明        473
第三部分  标准函数库
第25章  基于C的输入/输出函数        477
25.1  clearerr函数        477
25.2  fclose函数        477
25.3  feof函数        478
25.4  ferror函数        478
25.5  fflush函数        478
25.6  fgetc函数        478
25.7  fgetpos函数        479
25.8  fgets函数        479
25.9  fopen函数 479
25.10 fprintf函数        480
25.11 fputc函数        481
25.12 fputs函数        481
25.13 fread函数        481
25.14 freopen函数        481
25.15 fscanf函数        482
25.16 fseek函数        482
25.17 fsetpos函数        483
25.18 ftell函数        483
25.19 fwrite函数        483
25.20 getc函数        483
25.21 getchar函数        484
25.22 gets函数        484
25.23 perror函数        484
25.24 printf函数        484
25.25 putc函数        486
25.26 putchar函数        486
25.27 puts函数        487
25.28 remove函数        487
25.29 rename函数        487
25.30 rewind函数        487
25.31 scanf函数        487
25.32 setbuf函数        490
25.33 setvbuf函数        490
25.34 sprintf函数        490
25.35 sscanf函数        490
25.36 tmpfile函数        491
25.37 tmpnam函数        491
25.38 ungetc函数        491
25.39 vprintf,vfprintf和vsprintf函数        492
第26章  字符串与字符函数        493
26.1  isalnum函数        493
26.2  isalpha函数        493
26.3  iscntrl函数        493
26.4  isdigit函数        494
26.5  isgraph函数        494
26.6  islower函数        494
26.7  isprint函数        494
26.8  ispunct函数        494
26.9  isspace函数        495
26.10 isupper函数        495
26.11 isxdigit函数        495
26.12 memchr函数        495
26.13 memcmp函数        495
26.14 memcpy函数        496
26.15 memmove函数        496
26.16 memset函数        496
26.17 strcat函数        496
26.18 strchr函数        497
26.19 strcmp函数        497
26.20 strcoll函数        497
26.21 strcpy函数        497
26.22 strcspn函数        498
26.23 strerror函数        498
26.24 strlen函数        498
26.25 strncat函数        498
26.26 strncmp函数        498
26.27 strncpy函数        499
26.28 strpbrk函数        499
26.29 strrchr函数        499
26.30 strspn函数        499
26.31 strstr函数        500
26.32 strtok函数        500
26.33 strxfrm函数        500
26.34 tolower函数        500
26.35 toupper函数        501
第27章  数学函数        502
27.1  acos函数        502
27.2  asin函数        502
27.3  atan函数        503
27.4  atan2函数        503
27.5  ceil函数        503
27.6  cos函数        503
27.7  cosh函数        503
27.8  exp函数        504
27.9  fabs函数        504
27.10 floor函数        504
27.11 fmod函数        504
27.12 frexp函数        504
27.13 ldexp函数        505
27.14 log函数        505
27.15 log10函数        505
27.16 modf函数        505
27.17 pow函数        506
27.18 sin函数        506
27.19 sinh函数        506
27.20 sqrt函数        506
27.21 tan函数        506
27.22 tanh函数        507
第28章  时间、日期和定位函数        508
28.1  asctime函数        508
28.2  clock函数        509
28.3  ctime函数        509
28.4  difftime函数        509
28.5  gmtime函数        509
28.6  localeconv函数        510
28.7  localtime函数        511
28.8  mktime函数        511
28.9  setlocale函数        511
28.10 strftime函数        512
28.11 time函数        512
第29章  动态分配函数        514
29.1  calloc函数        514
29.2  free函数        514
29.3  malloc函数        515
29.4  realloc函数        515
第30章  实用函数        516
30.1  abort函数        516
30.2  abs函数        516
30.3  assert函数        516
30.4  atexit函数        517
30.5  atof函数        517
30.6  atoi函数        517
30.7  atol函数        518
30.8  bsearch函数        518
30.9  div函数        518
30.10 exit函数        519
30.11 getenv函数        519
30.12 labs函数        519
30.13 ldiv函数        519
30.14 longjmp函数        520
30.15 mblen函数        520
30.16 mbstowcs函数        520
30.17 mbtowc函数        520
30.18 qsort函数        521
30.19 raise函数        521
30.20 rand函数        522
30.21 setjmp函数        522
30.22 signal函数        522
30.23 srand函数        522
30.24 strtod函数        523
30.25 strtol函数        523
30.26 strtoul函数        523
30.27 system函数        524
30.28 va_arg,va_start和va_end函数        524
30.29 wcstombs函数        524
30.30 wctomb函数        525
第31章  宽字符函数        526
31.1  宽字符分类函数        526
31.2  宽字符I/O函数        528
31.3  宽字符串函数        529
31.4  宽字符串转换函数        529
31.5  宽字符数组函数        530
31.6  多字节/宽字符转换函数        530
第四部分  标准C++类库
第32章  标准C++ I/O类        534
32.1  I/O类        534
32.2  I/O头文件        535
32.3  格式化标记和I/O操作算子        536
32.4  几个数据类型        537
32.5  重载<<和>>运算符        538
32.6  通用的I/O函数        538
第33章  STL容器类        549
33.1  容器类        549
第34章  STL算法        564
34.1  adjacent_find        564
34.2  binary_search        564
34.3  copy        565
34.4  copy_backward        565
34.5  count        565
34.6  count_if        565
34.7  equal        565
34.8  equal_range        565
34.9  fill和fill_n        566
34.10 find        566
34.11 find_end        566
34.12 find_first_of        566
34.13 find_if        567
34.14 for_each        567
34.15 generate和generate_n        567
34.16 includes        567
34.17 inplace_merge        567
34.18 iter_swap        568
34.19 lexicographical_compare        568
34.20 lower_bound        568
34.21 make_heap        568
34.22 max        568
34.23 max_element        569
34.24 merge        569
34.25 min        569
34.26 min_element        569
34.27 mismatch        570
34.28 next_permutation        570
34.29 nth_element        570
34.30 partial_sort        570
34.31 partial_sort_copy        571
34.32 partition        571
34.33 pop_heap        571
34.34 prev_permutation        571
34.35 push_heap        572
34.36 random_shuffle        572
34.37 remove, remove_if, remove_copy和remove_copy_if        572
34.38 replace, replace_copy, replace_if和 replace_copy_if        573
34.39 reverse和reverse_copy        573
34.40 rotate和rotate_copy        573
34.41 search        574
34.42 search_n        574
34.43 set_difference        574
34.44 set_intersection        574
34.45 set_symmetric_difference        575
34.46 set_union        575
34.47 sort        575
34.48 sort_heap        576
34.49 stable_partition        576
34.50 stable_sort        576
34.51 swap        576
34.52 swap_ranges        576
34.53 transform        576
34.54 unique和unique_copy        577
34.55 upper_bound        577
第35章  STL迭代器、分配器和函数对象        578
35.1  迭代器        578
35.2  函数对象        585
35.3  分配器        590
第36章  字符串类        592
36.1  basic_string类        592
36.2  char_traits类        598
第37章  数字类        600
37.1  complex类        600
37.2  valarray类        603
37.3  数字算法        614
第38章  异常处理和杂项类        618
38.1  异常        618
38.2  auto_ptr        619
38.3  pair类        621
38.4  本地化        621
38.5  其他有趣的类        621
第五部分  C++应用程序范例
第39章  集成新的类:自定义字符串类        624
39.1  StrType类        624
39.2  构造函数和析构函数        625
39.3  字符串I/O        626
39.4  赋值函数        627
39.5  连接        628
39.6  子字符串减法        630
39.7  关系运算符        632
39.8  各种字符串函数        632
39.9  完整的StrType类        633
39.10 使用StrType类        640
39.11 创建和集成新类型        642
39.12 挑战        642
第40章  分析表达式        643
40.1  表达式        643
40.2  分析表达式:问题        644
40.3  分析一个表达式        644
40.4  parser类        645
40.5  剖析一个表达式        646
40.6  一个简单的表达式分析器        648
40.7  向分析器中添加变量        653
40.8  递归下降分析器中的语法检查        660
40.9  构建一个通用的分析器        661
40.10 需要试验的一些东西        667
附录A  C++的.NET可管理扩展        669
附录B  C++和机器人时代        672

截图:


发表回复