C++参考大全
2003-9-1
电子工业出版社
Herbert Schildt
673
无
本书是根据著名C语言专家Herbert Schildt的著作翻译的。这是一本关于C++语言的百科全书,包括C 和C++的命令、功能、编程和应用等方面的内容。全书分为五个部分:C++基础:C子集;C++的专有特征;标准函数库;标准C++类库;C++应用程序范例。详细描述和演示了定义C++语言的关键字、语法、函数、类和特征。其中第一部分全面讨论了C++的C子集;第二部分详细介绍了C++本身的特性,如类和对象、构造函数、析构函数和模板等;第三部分描述了标准函数库;第四部分讨论了标准类库,包括STL(标准模板库);第五部分显示了两个应用C++和面向对象编程的实际例子。 本书内容全面、翔实,是学习C++编程语言的广大学生的一部有用的工具书,也是对C++感兴趣的读者的必备参考书。
第一部分 C++基础:C子集第1章 C语言概述 31.1 C语言的起源和历史 31.2 C语言是中级语言 41.3 C语言是结构化语言 51.4 C语言是程序员的语言 61.5 C程序的结构 71.6 库和链接 81.7 分别编译 91.8 理解.C和.CPP文件扩展 9第2章 表达式 102.1 五种基本数据类型 102.2 修饰基本类型 102.3 标识符名称 122.4 变量 122.5 const和volatile限定符 162.6 存储类限定符 182.7 变量初始化 222.8 常量 232.9 运算符 242.10 表达式 36第3章 语句 403.1 C和C++中的真值和假值 403.2 选择语句 403.3 迭代语句 493.4 在选择和迭代语句内声明变量 573.5 跳转语句 573.6 表达式语句 623.7 块语句 62第4章 数组和以null结束的字符串 634.1 一维数组 634.2 生成指向数组的指针 644.3 向函数传递一维数组 644.4 以null结束的字符串 654.5 二维数组 674.6 多维数组 714.7 带下标的指针 724.8 数组初始化 734.9 棋盘游戏实例 75第5章 指针 795.1 什么是指针 795.2 指针变量 795.3 指针运算符 805.4 指针表达式 815.5 指针和数组 845.6 多级间址 855.7 初始化指针 865.8 指向函数的指针 875.9 C语言的动态分配函数 895.10 指针应用中的问题 91第6章 函数 946.1 函数的一般形式 946.2 函数作用域的规则 946.3 函数变元 956.4 传给main( )的变元argc和argv 996.5 return语句 1016.6 递归 1056.7 函数原型 1066.8 声明变长参数列表 1086.9 传统的与现代的函数参数声明 108第7章 结构、联合、枚举和用户定义的类型 1107.1 结构 1107.2 结构数组 1137.3 向函数传递结构 1137.4 结构指针 1157.5 结构中的数组和结构 1187.6 位域 1187.7 联合 1207.8 枚举 1227.9 用sizeof来保证可移植性 1247.10 typedef 125第8章 C风格的控制台I/O 1278.1 一个重要的应用说明 1278.2 读写字符 1288.3 读写字符串 1308.4 格式化的控制台I/O 1328.5 printf( ) 1328.6 scanf( ) 137第9章 文件I/O 1439.1 C与C++的文件I/O 1439.2 流和文件 1439.3 流 1439.4 文件 1449.5 文件系统基础 1449.6 fread( )和fwrite( ) 1539.7 fseek( )和随机访问I/O 1559.8 fprintf( )和fscanf( ) 1569.9 标准流 157第10章 预处理器和注释 16010.1 预处理器 16010.2 #define 16010.3 #error 16210.4 #include 16210.5 条件编译指令 16310.6 #undef 16610.7 使用defined 16610.8 #line 16610.9 #pragma 16710.10 #和##预处理器运算符 16710.11 预定义的宏名 16810.12 注释 168第二部分 C++的专有特征第11章 C++语言概述 17211.1 C++的起源 17211.2 什么是面向对象的程序设计 17311.3 C++基础 17411.4 老的C++与现代C++ 17911.5 C++的类 18211.6 函数重载 18511.7 运算符重载 18711.8 继承 18711.9 构造函数和析构函数 19111.10 C++的关键字 19411.11 C++程序的一般形式 195第12章 类和对象 19612.1 类 19612.2 结构和类是相互关联的 19812.3 联合和类是相互关联的 20012.4 友元函数 20112.5 友元类 20512.6 内联函数 20612.7 在类中定义内联函数 20712.8 带参数的构造函数 20812.9 带一个参数的构造函数:特例 21012.10 静态类成员 21112.11 何时执行构造函数和析构函数 21612.12 作用域分辨符 21712.13 嵌套类 21712.14 局部类 21712.15 向函数传递对象 21812.16 返回对象 22012.17 对象赋值 221第13章 数组、指针、引用和动态分配运算符 22213.1 对象数组 22213.2 指向对象的指针 22413.3 C++指针的类型检查 22613.4 this指针 22613.5 指向派生类型的指针 22813.6 指向类成员的指针 22913.7 引用 23113.8 格式问题 23613.9 C++的动态分配运算符 237第14章 函数重载、拷贝构造函数和默认变元 24514.1 函数重载 24514.2 重载构造函数 24614.3 拷贝构造函数 24914.4 查找重载函数的地址 25214.5 重载的过去与现在 25314.6 默认的函数变元 25314.7 函数重载和二义性 257第15章 运算符重载 26115.1 创建成员运算符函数 26115.2 使用友元函数的运算符重载 26615.3 重载new和delete 27015.4 重载某些特殊运算符 27715.5 重载逗号运算符 282第16章 继承 28416.1 基类访问控制 28416.2 继承和保护成员 28516.3 继承多个基类 28916.4 构造函数、析构函数和继承 29016.5 准许访问 29616.6 虚基类 297第17章 虚函数与多态性 30217.1 虚函数 30217.2 继承虚属性 30517.3 虚函数是分层的 30617.4纯虚函数 30817.5 使用虚函数 31017.6 早期绑定与后期绑定 312第18章 模板 31318.1 通用函数 31318.2 应用通用函数 31918.3 通用类 32218.4 关键字typename和export 33018.5 模板的功用 331第19章 异常处理 33219.1 异常处理基础 33219.2 处理派生类异常 33819.3 异常处理选项 33919.4 理解terminate( )和unexpected( ) 34319.5 uncaught_exception( )函数 34519.6 exception和bad_exception类 34519.7 异常处理的应用 345第20章 C++输入/输出系统基础 34720.1 老的C++ I/O与现代的C++ I/O 34720.2 C++的流 34720.3 C++的流类 34820.4 格式化的I/O 34920.5 重载 358第21章 C++文件的输入/输出 36821.1 和文件类 36821.2 打开和关闭文件 36821.3 读写文本文件 37021.4 无格式和二进制I/O 37221.5 其他get( )函数 37621.6 getline( )函数 37621.7 检测EOF 37721.8 ignore( )函数 37921.9 peek( )和putback( )函数 37921.10 flush( )函数 38021.11 随机访问 38021.12 I/O状态 38321.13 定制的I/O和文件 384第22章 运行时类型标识与强制转换运算符 38722.1 运行时类型标识 38722.2 强制转换运算符 39422.3 dynamic_cast 394第23章 名字空间、转换函数和其他高级主题 40323.1 名字空间 40323.2 std名字空间 40923.3 创建转换函数 41123.4 const成员函数与mutable 41423.5 volatile成员函数 41523.6 explicit构造函数 41523.7 成员初始化语法 41623.8 利用关键字asm 42023.9 连接说明 42123.10 基于数组的I/O 42123.11 C与C++的区别 426第24章 标准模板库 42824.1 STL概述 42824.2 容器类 43024.3 一般的操作原理 43124.4 vector容器 43224.5 list容器 43924.6 map容器 44724.7 算法 45224.8 使用函数对象 45924.9 string类 46424.10 关于STL的最后一点说明 473第三部分 标准函数库第25章 基于C的输入/输出函数 47725.1 clearerr函数 47725.2 fclose函数 47725.3 feof函数 47825.4 ferror函数 47825.5 fflush函数 47825.6 fgetc函数 47825.7 fgetpos函数 47925.8 fgets函数 47925.9 fopen函数 47925.10 fprintf函数 48025.11 fputc函数 48125.12 fputs函数 48125.13 fread函数 48125.14 freopen函数 48125.15 fscanf函数 48225.16 fseek函数 48225.17 fsetpos函数 48325.18 ftell函数 48325.19 fwrite函数 48325.20 getc函数 48325.21 getchar函数 48425.22 gets函数 48425.23 perror函数 48425.24 printf函数 48425.25 putc函数 48625.26 putchar函数 48625.27 puts函数 48725.28 remove函数 48725.29 rename函数 48725.30 rewind函数 48725.31 scanf函数 48725.32 setbuf函数 49025.33 setvbuf函数 49025.34 sprintf函数 49025.35 sscanf函数 49025.36 tmpfile函数 49125.37 tmpnam函数 49125.38 ungetc函数 49125.39 vprintf,vfprintf和vsprintf函数 492第26章 字符串与字符函数 49326.1 isalnum函数 49326.2 isalpha函数 49326.3 iscntrl函数 49326.4 isdigit函数 49426.5 isgraph函数 49426.6 islower函数 49426.7 isprint函数 49426.8 ispunct函数 49426.9 isspace函数 49526.10 isupper函数 49526.11 isxdigit函数 49526.12 memchr函数 49526.13 memcmp函数 49526.14 memcpy函数 49626.15 memmove函数 49626.16 memset函数 49626.17 strcat函数 49626.18 strchr函数 49726.19 strcmp函数 49726.20 strcoll函数 49726.21 strcpy函数 49726.22 strcspn函数 49826.23 strerror函数 49826.24 strlen函数 49826.25 strncat函数 49826.26 strncmp函数 49826.27 strncpy函数 49926.28 strpbrk函数 49926.29 strrchr函数 49926.30 strspn函数 49926.31 strstr函数 50026.32 strtok函数 50026.33 strxfrm函数 50026.34 tolower函数 50026.35 toupper函数 501第27章 数学函数 50227.1 acos函数 50227.2 asin函数 50227.3 atan函数 50327.4 atan2函数 50327.5 ceil函数 50327.6 cos函数 50327.7 cosh函数 50327.8 exp函数 50427.9 fabs函数 50427.10 floor函数 50427.11 fmod函数 50427.12 frexp函数 50427.13 ldexp函数 50527.14 log函数 50527.15 log10函数 50527.16 modf函数 50527.17 pow函数 50627.18 sin函数 50627.19 sinh函数 50627.20 sqrt函数 50627.21 tan函数 50627.22 tanh函数 507第28章 时间、日期和定位函数 50828.1 asctime函数 50828.2 clock函数 50928.3 ctime函数 50928.4 difftime函数 50928.5 gmtime函数 50928.6 localeconv函数 51028.7 localtime函数 51128.8 mktime函数 51128.9 setlocale函数 51128.10 strftime函数 51228.11 time函数 512第29章 动态分配函数 51429.1 calloc函数 51429.2 free函数 51429.3 malloc函数 51529.4 realloc函数 515第30章 实用函数 51630.1 abort函数 51630.2 abs函数 51630.3 assert函数 51630.4 atexit函数 51730.5 atof函数 51730.6 atoi函数 51730.7 atol函数 51830.8 bsearch函数 51830.9 div函数 51830.10 exit函数 51930.11 getenv函数 51930.12 labs函数 51930.13 ldiv函数 51930.14 longjmp函数 52030.15 mblen函数 52030.16 mbstowcs函数 52030.17 mbtowc函数 52030.18 qsort函数 52130.19 raise函数 52130.20 rand函数 52230.21 setjmp函数 52230.22 signal函数 52230.23 srand函数 52230.24 strtod函数 52330.25 strtol函数 52330.26 strtoul函数 52330.27 system函数 52430.28 va_arg,va_start和va_end函数 52430.29 wcstombs函数 52430.30 wctomb函数 525第31章 宽字符函数 52631.1 宽字符分类函数 52631.2 宽字符I/O函数 52831.3 宽字符串函数 52931.4 宽字符串转换函数 52931.5 宽字符数组函数 53031.6 多字节/宽字符转换函数 530第四部分 标准C++类库第32章 标准C++ I/O类 53432.1 I/O类 53432.2 I/O头文件 53532.3 格式化标记和I/O操作算子 53632.4 几个数据类型 53732.5 重载运算符 53832.6 通用的I/O函数 538第33章 STL容器类 54933.1 容器类 549第34章 STL算法 56434.1 adjacent_find 56434.2 binary_search 56434.3 copy 56534.4 copy_backward 56534.5 count 56534.6 count_if 56534.7 equal 56534.8 equal_range 56534.9 fill和fill_n 56634.10 find 56634.11 find_end 56634.12 find_first_of 56634.13 find_if 56734.14 for_each 56734.15 generate和generate_n 56734.16 includes 56734.17 inplace_merge 56734.18 iter_swap 56834.19 lexicographical_compare 56834.20 lower_bound 56834.21 make_heap 56834.22 max 56834.23 max_element 56934.24 merge 56934.25 min 56934.26 min_element 56934.27 mismatch 57034.28 next_permutation 57034.29 nth_element 57034.30 partial_sort 57034.31 partial_sort_copy 57134.32 partition 57134.33 pop_heap 57134.34 prev_permutation 57134.35 push_heap 57234.36 random_shuffle 57234.37 remove, remove_if, remove_copy和remove_copy_if 57234.38 replace, replace_copy, replace_if和 replace_copy_if 57334.39 reverse和reverse_copy 57334.40 rotate和rotate_copy 57334.41 search 57434.42 search_n 57434.43 set_difference 57434.44 set_intersection 57434.45 set_symmetric_difference 57534.46 set_union 57534.47 sort 57534.48 sort_heap 57634.49 stable_partition 57634.50 stable_sort 57634.51 swap 57634.52 swap_ranges 57634.53 transform 57634.54 unique和unique_copy 57734.55 upper_bound 577第35章 STL迭代器、分配器和函数对象 57835.1 迭代器 57835.2 函数对象 58535.3 分配器 590第36章 字符串类 59236.1 basic_string类 59236.2 char_traits类 598第37章 数字类 60037.1 complex类 60037.2 valarray类 60337.3 数字算法 614第38章 异常处理和杂项类 61838.1 异常 61838.2 auto_ptr 61938.3 pair类 62138.4 本地化 62138.5 其他有趣的类 621第五部分 C++应用程序范例第39章 集成新的类:自定义字符串类 62439.1 StrType类 62439.2 构造函数和析构函数 62539.3 字符串I/O 62639.4 赋值函数 62739.5 连接 62839.6 子字符串减法 63039.7 关系运算符 63239.8 各种字符串函数 63239.9 完整的StrType类 63339.10 使用StrType类 64039.11 创建和集成新类型 64239.12 挑战 642第40章 分析表达式 64340.1 表达式 64340.2 分析表达式:问题 64440.3 分析一个表达式 64440.4 parser类 64540.5 剖析一个表达式 64640.6 一个简单的表达式分析器 64840.7 向分析器中添加变量 65340.8 递归下降分析器中的语法检查 66040.9 构建一个通用的分析器 66140.10 需要试验的一些东西 667附录A C++的.NET可管理扩展 669附录B C++和机器人时代 672
无