| |
| |
| |
内容简介
本书是根据著名C语言专家Herbert Schildt的著作翻译的。这是一本关于C++语言的百科全书,包括C 和C++的命令、功能、编程和应用等方面的内容。全书分为五个部分:C++基础:C子集;C++的专有特征;标准函数库;标准C++类库;C++应用程序范例。详细描述和演示了定义C++语言的关键字、语法、函数、类和特征。其中第一部分全面讨论了C++的C子集;第二部分详细介绍了C++本身的特性,如类和对象、构造函数、析构函数和模板等;第三部分描述了标准函数库;第四部分讨论了标准类库,包括STL(标准模板库);第五部分显示了两个应用C++和面向对象编程的实际例子。
本书内容全面、翔实,是学习C++编程语言的广大学生的一部有用的工具书,也是对C++感兴趣的读者的必备参考书。 前 言 如果有一种语言定义了现代化程序设计的概念,它就是C++。C++的语法、风格和理念设立了所有其他语言得以进行评判的标准。此外,C++是一种通用的程序设计语言。当对算法或技巧进行描述时,通常使用C++语法来完成。C++长时间的成功在计算机语言开发的历史上留下了不可磨灭的印记,例如,Java和C#都是从C++中派生出的。坦率地讲,要成为一名专业的程序设计人员,就要精通C++。C++是一种所有程序员都不能忽视的语言。 本书全面描述和演示了定义C++语言的关键字、语法、函数、类和特征。更准确地讲,本书全面描述了标准C++语言。标准C++是由ANSI/ISO C++标准定义的C++版本,也是为所有主要编译器、包括Microsoft的Visual C++和Borland的C++ Builder所支持的C++版本。因此,本书中的内容适用于所有现代编程环境。 自本书前一版出版以来,C++语言并没有变化,然而,计算环境却有了相当大的改变。例如,C语言的一个新标准,即C99得以建立,Java变成了进行Web编程的主要语言,.NET框架发布,C# 产生。在过去几年所发生的这些变化中,有一件事保持不变:C++的强大功能。C++一直是并将仍然是未来开发高性能软件的首选语言。 第四版中的新内容 第四版的整个结构和组织与第三版类似。因此,如果你一直在使用第三版,你会非常喜欢第四版。第四版的主要变化涉及整个内容的更新和扩展。有时加入了额外的细节内容,有时对问题的表述方法进行了修改,有时对描述的内容进行了更新以反映当前的编程环境,也添加了几个新的章节。在第一部分适当的地方,提到了我们称为C99的新的C标准,并论述了它与C++的关系。 另外,添加了两个附录。附录A 描述了由Microsoft定义的扩展关键字,用于创建.NET框架的可管理代码。附录B描述了机器人。作者一直对机器人感兴趣,也相信许多读者会对作者的实验用机器人感兴趣。当然,生成它的多数软件是用C++编写的。最后,所有的代码范例都用现有的编译器进行了重新测试,包括Microsoft的Visual Studio.NET和Borland的C++ Builder。 本书内容 本书详细讨论了C++语言的所有方面,包括它的基础:C语言。本书分为下面五个部分: ● C++基础:C子集 ● C++语言 ● 标准函数库 ● 标准C++类库 ● C++应用程序范例 第一部分全面讨论了C++的C子集。就像大部分读者将要知道的,C语言是C++得以建立的基础。正是C子集定义了C++的基础特征,包括for循环和if语句。它也定义了C++语言块结构、指针和函数的基本性质。因为许多读者对C语言非常熟悉,可称得上是专业水平的,所以在本书第一部分单独讨论C子集就不会使有经验的C程序员重复阅读他们已经知道的东西。相反,他们可以直接进入本书讨论C++专有特征的部分开始学习。 第二部分详细讨论了C语言基础以外的特征,同时也定义了C++语言,包括它的面向对象的特征,如类、构造函数、析构函数、RTTI和模板。因此,第二部分讨论了“使C++成为C++”的那些结构。 第三部分描述了标准函数库,第四部分讨论了标准类库,包括STL(标准模板库),第五部分给出了两个应用C++和面向对象编程的实际例子。 一本面向所有程序员的书 本书是为所有C++程序员设计的,而不管他们的经验水平。然而,本书假定读者能够创建至少一个简单的程序。如果你正在学习C++,本书将是与任何C++教程配套的极好的参考书,也可用做回答特定问题的参考书。有经验的C++支持者将会发现对C++高级特征的详细讨论特别有用。 如果使用的是Windows操作系统 如果你的计算机使用的是Windows操作系统,那么,你选择了正确的语言。C++特别适合于Windows 程序设计。然而,本书中的程序都不是Windows程序,相反,它们是基于控制台的程序。理由很简单:从本质上讲,Windows程序很大、很复杂。创建一个小的Windows程序的开销是50到70行代码。要编写演示C++特征的Windows程序,则需要几百行代码。简言之,Windows不是一个讨论编程语言特征的合适的环境。然而,仍然可以使用基于Windows的编译器来编译本书中的程序,因为编译器将自动创建一个控制台会话,在这个会话中执行程序。 Web上的代码 记住,本书中所有程序的源代码都可以在Web上免费得到,其网址为www.osborne.com。下载这些代码可以使你免于自己键入范例代码。
| |
|
顾客评论 |
|
目录
第一部分 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
| |
C++参考大全(第四版)-相关图书 ·研究生入学考试要点、真题解析与模拟试卷(数据结构) ·中国近代文化概论 ·袖珍电工材料手册 ·刘师培经典文存 ·半导体光学 ·连钡经营企业会计实务 ·中国民间舞教材与教法 ·自助求职英语 ·物理和化学常数表 ·七年级。英语(通用版)全国金牌奥赛ABC卷 ·英语。九年级(通用版)全国金牌奥赛ABC卷 ·理论的紧张 ·凝聚态物理学原理 ·运动的量子理论 ·知识产权法教学参考书 ·量子光学 ·(第三级)全国英语等级考试考前冲刺名家预测试卷 ·化学 初中金牌奥赛热点试题分类全解 ·与年轻记者谈成才 ·(第四级)全国英语等级考试考前冲刺名家预测试卷
|
| |