C++程序设计语言

C++程序设计语言
8.8
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美]
出版社: 机械工业出版社
2010-03
版次: 1
ISBN: 9787111298854
定价: 99.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 905页
正文语种: 简体中文
原版书名: The C++ Programming Language: Special Edition
  •   本书是在C++语言和程序设计领域具有深远影响、畅销不衰的著作,由C++语言的设计者编写,对C++语言进行了全面、专业的论述,覆盖标准C++以及由C++所支持的关键性编程技术和设计技术。本书英文原版一经面世,即引起业内人士的高度评价和热烈欢迎,先后被翻译成德、希、匈、西、荷、法、日、俄、中、韩等近20种语言,数以百万计的程序员从中获益,是无可取代的C++经典力作。  在本书英文原版面世10年后的今天,特别奉上十周年中文纪念版,希望众多具有丰富实战经验的C++开发人员能够温故而知新,印证学习心得,了解更加本质的C++知识,让获得的理论应用得更加灵活,也期望新的C++程序员从中认识到这本书的价值所在,从更高的起点出发,书写更加精彩的程序设计人生。  作者简介:BjarneStroustrup,英国剑桥大学计算机科学博士,C++语言的设计者和最初的实现者,也是《C++程序设计原理与实践》和《C++语言的设计和演化》的作者。他现在是德州农工大学计算机科学首席教授,同时不审AT&T贝尔实验室特别成员。1993年,由于在C++领域的重大贡献,他获得了ACM的GraceMurrayHopper大奖并成为ACM院士;2008年,他又获得了Dr.Dobbs杂志的程序设计杰出奖。在进入学术界之前,他在AT&T贝尔实验室工作。他是ISOC++标准委员会的创始人之一。   斯特朗斯特鲁普(BjarneStroustrup),英国剑桥大学计算机科学博士,C++语言的设计者和最初的实现者,也是《C++程序设计原理与实践》和《C++语言的设计和演化》的作者。他现在是德州农工大学计算机科学首席教授,同时不审AT&T贝尔实验室特别成员。1993年,由于在C++领域的重大贡献,他获得了ACM的GraceMurrayHopper大奖并成为ACM院士;2008年,他又获得了Dr.Dobbs杂志的程序设计杰出奖。在进入学术界之前,他在AT&T贝尔实验室工作。他是ISOC++标准委员会的创始人之一。 出版者的话专家指导委员会中文版序译者序第2版序第1版序导论第1章致读者1.1本书的结构1.1.1例子和参考1.1.2练习1.1.3有关实现的注记1.2学习C++1.3C++的设计1.3.1效率和结构1.3.2哲学注记1.4历史注记1.5C++的使用1.6C和C++1.6.1给C程序员的建议1.6.2给C++程序员的建议1.7有关在C++里编程的思考1.8忠告1.9参考文献第2章C++概览2.1为什么是C++2.2程序设计范型2.3过程式程序设计2.3.1变量和算术2.3.2检测和循环2.3.3指针和数组2.4模块程序设计2.4.1分别编译2.4.2异常处理2.5数据抽象2.5.1定义类型的模块2.5.2用户定义类型2.5.3具体类型2.5.4抽象类型2.5.5虚函数2.6面向对象的程序设计2.6.1具体类型的问题2.6.2类层次结构2.7通用型程序设计2.7.1容器2.7.2通用型算法2.8附言2.9忠告第3章标准库概览3.1引言3.2Hello,world!3.3标准库名字空间3.4输出3.5字符串3.5.1C风格的字符串3.6输入3.7容器3.7.1向量—vector3.7.2范围检查3.7.3表—list3.7.4映射—map3.7.5标准容器3.8算法3.8.1迭代器的使用3.8.2迭代器类型3.8.3迭代器和I/O3.8.4遍历和谓词3.8.5使用成员函数的算法3.8.6标准库算法3.9数学3.9.1复数3.9.2向量算术3.9.3基本数值支持3.10标准库功能3.11忠告第一部分基本功能第4章类型和声明4.1类型4.1.1基本类型4.2布尔量4.3字符类型4.3.1字符文字量4.4整数类型4.4.1整数文字量4.5浮点类型4.5.1浮点文字量4.6大小4.7void4.8枚举4.9声明4.9.1声明的结构4.9.2声明多个名字4.9.3名字4.9.4作用域4.9.5初始化4.9.6对象和左值4.9.7typedef4.10忠告4.11练习第5章指针、数组和结构5.1指针5.1.1零5.2数组5.2.1数组初始化5.2.2字符串文字量5.3到数组的指针5.3.1在数组里漫游5.4常量5.4.1指针和常量5.5引用5.6指向void的指针5.7结构5.7.1类型等价5.8忠告5.9练习第6章表达式和语句6.1一个桌面计算器6.1.1分析器6.1.2输入函数6.1.3低级输入6.1.4错误处理6.1.5驱动程序6.1.6头文件6.1.7命令行参数6.1.8有关风格的注记6.2运算符概览6.2.1结果6.2.2求值顺序6.2.3运算符优先级6.2.4按位逻辑运算符6.2.5增量和减量6.2.6自由存储6.2.7显式类型转换6.2.8构造函数6.3语句概览6.3.1声明作为语句6.3.2选择语句6.3.3迭代语句6.3.4goto6.4注释和缩进编排6.5忠告6.6练习第7章函数7.1函数声明7.1.1函数定义7.1.2静态变量7.2参数传递7.2.1数组参数7.3返回值7.4重载函数名7.4.1重载和返回类型7.4.2重载与作用域7.4.3手工的歧义性解析7.4.4多参数的解析7.5默认参数7.6未确定数目的参数7.7指向函数的指针7.8宏7.8.1条件编译7.9忠告7.10练习第8章名字空间和异常8.1模块化和界面8.2名字空间8.2.1带限定词的名字8.2.2使用声明8.2.3使用指令8.2.4多重界面8.2.5避免名字冲突8.2.6名字查找8.2.7名字空间别名8.2.8名字空间组合8.2.9名字空间和老代码8.3异常8.3.1抛出和捕捉8.3.2异常的辨识8.3.3在计算器中的异常8.4忠告8.5练习第9章源文件和程序9.1分别编译9.2连接9.2.1头文件9.2.2标准库头文件9.2.3单一定义规则9.2.4与非C++代码的连接9.2.5连接与指向函数的指针9.3使用头文件9.3.1单一头文件9.3.2多个头文件9.3.3包含保护符9.4程序9.4.1非局部变量的初始化9.5忠告9.6练习第二部分抽象机制第10章类10.1引言10.2类10.2.1成员函数10.2.2访问控制10.2.3构造函数10.2.4静态成员10.2.5类对象的复制10.2.6常量成员函数10.2.7自引用10.2.8结构和类10.2.9在类内部的函数定义10.3高效的用户定义类型10.3.1成员函数10.3.2协助函数10.3.3重载的运算符10.3.4具体类型的意义10.4对象10.4.1析构函数10.4.2默认构造函数10.4.3构造和析构10.4.4局部变量10.4.5自由存储10.4.6类对象作为成员10.4.7数组10.4.8局部静态存储10.4.9非局部存储10.4.10临时对象10.4.11对象的放置10.4.12联合10.5忠告10.6练习第11章运算符重载11.1引言11.2运算符函数11.2.1二元和一元运算符11.2.2运算符的预定义意义11.2.3运算符和用户定义类型11.2.4名字空间里的运算符11.3一个复数类型11.3.1成员运算符和非成员运算符11.3.2混合模式算术11.3.3初始化11.3.4复制11.3.5构造函数和转换11.3.6文字量11.3.7另一些成员函数11.3.8协助函数11.4转换运算符11.4.1歧义性11.5友元11.5.1友元的寻找11.5.2友元和成员11.6大型对象11.7基本运算符11.7.1显式构造函数11.8下标11.9函数调用11.10间接11.11增量和减量11.12一个字符串类11.13忠告11.14练习第12章派生类12.1引言12.2派生类12.2.1成员函数12.2.2构造函数和析构函数12.2.3复制12.2.4类层次结构12.2.5类型域12.2.6虚函数12.3抽象类12.4类层次结构的设计12.4.1一个传统的层次结构12.4.2抽象类12.4.3其他实现方式12.4.4对象创建的局部化12.5类层次结构和抽象类12.6忠告12.7练习第13章模板13.1引言13.2一个简单的String模板13.2.1定义一个模板13.2.2模板实例化13.2.3模板参数13.2.4类型等价13.2.5类型检查13.3函数模板13.3.1函数模板的参数13.3.2函数模板的重载13.4用模板参数描述策略13.4.1默认模板参数13.5专门化13.5.1专门化的顺序13.5.2模板函数的专门化13.6派生和模板13.6.1参数化和继承13.6.2成员模板13.6.3继承关系13.7源代码组织13.8忠告13.9练习第14章异常处理14.1错误处理14.1.1关于异常的其他观点14.2异常的结组14.2.1派生的异常14.2.2多个异常的组合14.3捕捉异常14.3.1重新抛出14.3.2捕捉所有异常14.4资源管理14.4.1构造函数和析构函数的使用14.4.2auto_ptr14.4.3告诫14.4.4异常和new14.4.5资源耗尽14.4.6构造函数里的异常14.4.7析构函数里的异常14.5不是错误的异常14.6异常的描述14.6.1对异常描述的检查14.6.2未预期的异常14.6.3异常的映射14.7未捕捉的异常14.8异常和效率14.9处理错误的其他方式14.10标准异常14.11忠告14.12练习第15章类层次结构15.1引言和概述15.2多重继承15.2.1歧义性解析15.2.2继承和使用声明15.2.3重复的基类15.2.4虚基类15.2.5使用多重继承15.3访问控制15.3.1保护成员15.3.2对基类的访问15.4运行时类型信息15.4.1dynamic_cast15.4.2在类层次结构中漫游15.4.3类对象的构造与析构15.4.4typeid和扩展的类型信息15.4.5RTTI的使用和误用15.5指向成员的指针15.5.1基类和派生类15.6自由存储15.6.1数组分配15.6.2虚构造函数15.7忠告15.8练习第三部分标准库第16章库组织和容器16.1标准库的设计16.1.1设计约束16.1.2标准库组织16.1.3语言支持16.2容器设计16.2.1专门化的容器和迭代器16.2.2有基类的容器16.2.3STL容器16.3向量16.3.1类型16.3.2迭代器16.3.3元素访问16.3.4构造函数16.3.5堆栈操作16.3.6表操作16.3.7元素定位16.3.8大小和容量16.3.9其他成员函数16.3.10协助函数16.3.11vector[bool]16.4忠告16.5练习第17章标准容器17.1标准容器17.1.1操作综述17.1.2容器综述17.1.3表示17.1.4对元素的要求17.2序列17.2.1向量—vector17.2.2表—list17.2.3双端队列—deque17.3序列适配器117.3.1堆栈—stack117.3.2队列—queue17.3.3优先队列—priority_queue17.4关联容器17.4.1映射—map17.4.2多重映射—multimap17.4.3集合—set17.4.4多重集合—multiset17.5拟容器17.5.1串—string17.5.2值向量—valarray17.5.3位集合—bitset17.5.4内部数组17.6定义新容器17.6.1散列映射—hash_map17.6.2表示和构造17.6.3其他散列关联容器17.7忠告17.8练习第18章算法和函数对象18.1引言18.2标准库算法综述18.3序列和容器18.3.1输入序列18.4函数对象18.4.1函数对象的基类18.4.2谓词18.4.3算术函数对象18.4.4约束器、适配器和否定器18.5非修改性序列算法18.5.1对每个做—for_each18.5.2查找族函数18.5.3计数18.5.4相等和不匹配18.5.5搜索18.6修改性序列算法18.6.1复制18.6.2变换18.6.3惟一化18.6.4取代18.6.5删除18.6.6填充和生成18.6.7反转和旋转18.6.8交换18.7排序的序列18.7.1排序18.7.2二分检索18.7.3归并18.7.4划分18.7.5序列上的集合运算18.8堆18.9最小和最大18.10排列18.11C风格算法18.12忠告18.13练习第19章迭代器和分配器19.1引言19.2迭代器和序列19.2.1迭代器的操作19.2.2迭代器特征类—iterator_traits19.2.3迭代器类别19.2.4插入器19.2.5反向迭代器19.2.6流迭代器19.3带检查迭代器19.3.1异常、容器和算法19.4分配器19.4.1标准分配器19.4.2一个用户定义分配器19.4.3广义的分配器19.4.4未初始化的存储19.4.5动态存储19.4.6C风格的分配19.5忠告19.6练习第20章串20.1引言20.2字符20.2.1字符特征类—char_traits20.3基础串类—basic_string20.3.1类型20.3.2迭代器20.3.3元素访问20.3.4构造函数20.3.5错误20.3.6赋值20.3.7到C风格字符串的转换20.3.8比较20.3.9插入20.3.10拼接20.3.11查找20.3.12替换20.3.13子串20.3.14大小和容量20.3.15I/O操作20.3.16交换20.4C标准库20.4.1C风格字符串20.4.2字符分类20.5忠告20.6练习第21章流21.1引言21.2输出21.2.1输出流21.2.2内部类型的输出21.2.3用户定义类型的输出21.3输入21.3.1输入流21.3.2内部类型的输入21.3.3流状态21.3.4字符的输入21.3.5用户定义类型的输入21.3.6异常21.3.7流的联结21.3.8哨位21.4格式化21.4.1格式状态21.4.2整数输出21.4.3浮点数输出21.4.4输出域21.4.5域的调整21.4.6操控符21.5文件流与字符串流21.5.1文件流21.5.2流的关闭21.5.3字符串流21.6缓冲21.6.1输出流和缓冲区21.6.2输入流和缓冲区21.6.3流和缓冲区21.6.4流缓冲区21.7现场21.7.1流回调21.8C输入/输出21.9忠告21.10练习第22章数值22.1引言22.2数值的限制22.2.1表示限制的宏22.3标准数学函数22.4向量算术22.4.1valarray的构造22.4.2valarray的下标和赋值22.4.3成员操作22.4.4非成员函数22.4.5切割22.4.6切割数组—slice_array22.4.7临时量、复制和循环22.4.8广义切割22.4.9屏蔽22.4.10间接数组—indirect_array22.5复数算术22.6通用数值算法22.6.1累积—accumulate22.6.2内积—inner_product22.6.3增量变化22.7随机数22.8忠告22.9练习第四部分用C++做设计第23章开发和设计23.1概述23.2引言23.3目的与手段23.4开发过程23.4.1开发循环23.4.2设计目标23.4.3设计步骤23.4.4试验和分析23.4.5测试23.4.6软件维护23.4.7效率23.5管理23.5.1重用23.5.2规模23.5.3个人23.5.4混成设计23.6带标注的参考文献23.7忠告第24章设计和编程24.1概述24.2设计和程序设计语言24.2.1忽视类24.2.2忽视继承24.2.3忽视静态类型检查24.2.4忽视程序设计24.2.5排他性地使用类层次结构24.3类24.3.1类表示什么24.3.2类层次结构24.3.3包容关系24.3.4包容和继承24.3.5使用关系24.3.6编入程序里的关系24.3.7类内的关系24.4组件24.4.1模板24.4.2界面和实现24.4.3肥大的界面24.5忠告第25章类的作用25.1类的种类25.2具体类型25.2.1具体类型的重用25.3抽象类型25.4结点25.4.1修改界面25.5动作25.6界面类25.6.1调整界面25.7句柄类25.7.1句柄上的操作25.8应用框架25.9忠告25.10练习附录和索引附录A语法附录B兼容性附录C技术细节附录D现场附录E标准库的异常时安全性索引
  • 内容简介:
      本书是在C++语言和程序设计领域具有深远影响、畅销不衰的著作,由C++语言的设计者编写,对C++语言进行了全面、专业的论述,覆盖标准C++以及由C++所支持的关键性编程技术和设计技术。本书英文原版一经面世,即引起业内人士的高度评价和热烈欢迎,先后被翻译成德、希、匈、西、荷、法、日、俄、中、韩等近20种语言,数以百万计的程序员从中获益,是无可取代的C++经典力作。  在本书英文原版面世10年后的今天,特别奉上十周年中文纪念版,希望众多具有丰富实战经验的C++开发人员能够温故而知新,印证学习心得,了解更加本质的C++知识,让获得的理论应用得更加灵活,也期望新的C++程序员从中认识到这本书的价值所在,从更高的起点出发,书写更加精彩的程序设计人生。  作者简介:BjarneStroustrup,英国剑桥大学计算机科学博士,C++语言的设计者和最初的实现者,也是《C++程序设计原理与实践》和《C++语言的设计和演化》的作者。他现在是德州农工大学计算机科学首席教授,同时不审AT&T贝尔实验室特别成员。1993年,由于在C++领域的重大贡献,他获得了ACM的GraceMurrayHopper大奖并成为ACM院士;2008年,他又获得了Dr.Dobbs杂志的程序设计杰出奖。在进入学术界之前,他在AT&T贝尔实验室工作。他是ISOC++标准委员会的创始人之一。
  • 作者简介:
      斯特朗斯特鲁普(BjarneStroustrup),英国剑桥大学计算机科学博士,C++语言的设计者和最初的实现者,也是《C++程序设计原理与实践》和《C++语言的设计和演化》的作者。他现在是德州农工大学计算机科学首席教授,同时不审AT&T贝尔实验室特别成员。1993年,由于在C++领域的重大贡献,他获得了ACM的GraceMurrayHopper大奖并成为ACM院士;2008年,他又获得了Dr.Dobbs杂志的程序设计杰出奖。在进入学术界之前,他在AT&T贝尔实验室工作。他是ISOC++标准委员会的创始人之一。
  • 目录:
    出版者的话专家指导委员会中文版序译者序第2版序第1版序导论第1章致读者1.1本书的结构1.1.1例子和参考1.1.2练习1.1.3有关实现的注记1.2学习C++1.3C++的设计1.3.1效率和结构1.3.2哲学注记1.4历史注记1.5C++的使用1.6C和C++1.6.1给C程序员的建议1.6.2给C++程序员的建议1.7有关在C++里编程的思考1.8忠告1.9参考文献第2章C++概览2.1为什么是C++2.2程序设计范型2.3过程式程序设计2.3.1变量和算术2.3.2检测和循环2.3.3指针和数组2.4模块程序设计2.4.1分别编译2.4.2异常处理2.5数据抽象2.5.1定义类型的模块2.5.2用户定义类型2.5.3具体类型2.5.4抽象类型2.5.5虚函数2.6面向对象的程序设计2.6.1具体类型的问题2.6.2类层次结构2.7通用型程序设计2.7.1容器2.7.2通用型算法2.8附言2.9忠告第3章标准库概览3.1引言3.2Hello,world!3.3标准库名字空间3.4输出3.5字符串3.5.1C风格的字符串3.6输入3.7容器3.7.1向量—vector3.7.2范围检查3.7.3表—list3.7.4映射—map3.7.5标准容器3.8算法3.8.1迭代器的使用3.8.2迭代器类型3.8.3迭代器和I/O3.8.4遍历和谓词3.8.5使用成员函数的算法3.8.6标准库算法3.9数学3.9.1复数3.9.2向量算术3.9.3基本数值支持3.10标准库功能3.11忠告第一部分基本功能第4章类型和声明4.1类型4.1.1基本类型4.2布尔量4.3字符类型4.3.1字符文字量4.4整数类型4.4.1整数文字量4.5浮点类型4.5.1浮点文字量4.6大小4.7void4.8枚举4.9声明4.9.1声明的结构4.9.2声明多个名字4.9.3名字4.9.4作用域4.9.5初始化4.9.6对象和左值4.9.7typedef4.10忠告4.11练习第5章指针、数组和结构5.1指针5.1.1零5.2数组5.2.1数组初始化5.2.2字符串文字量5.3到数组的指针5.3.1在数组里漫游5.4常量5.4.1指针和常量5.5引用5.6指向void的指针5.7结构5.7.1类型等价5.8忠告5.9练习第6章表达式和语句6.1一个桌面计算器6.1.1分析器6.1.2输入函数6.1.3低级输入6.1.4错误处理6.1.5驱动程序6.1.6头文件6.1.7命令行参数6.1.8有关风格的注记6.2运算符概览6.2.1结果6.2.2求值顺序6.2.3运算符优先级6.2.4按位逻辑运算符6.2.5增量和减量6.2.6自由存储6.2.7显式类型转换6.2.8构造函数6.3语句概览6.3.1声明作为语句6.3.2选择语句6.3.3迭代语句6.3.4goto6.4注释和缩进编排6.5忠告6.6练习第7章函数7.1函数声明7.1.1函数定义7.1.2静态变量7.2参数传递7.2.1数组参数7.3返回值7.4重载函数名7.4.1重载和返回类型7.4.2重载与作用域7.4.3手工的歧义性解析7.4.4多参数的解析7.5默认参数7.6未确定数目的参数7.7指向函数的指针7.8宏7.8.1条件编译7.9忠告7.10练习第8章名字空间和异常8.1模块化和界面8.2名字空间8.2.1带限定词的名字8.2.2使用声明8.2.3使用指令8.2.4多重界面8.2.5避免名字冲突8.2.6名字查找8.2.7名字空间别名8.2.8名字空间组合8.2.9名字空间和老代码8.3异常8.3.1抛出和捕捉8.3.2异常的辨识8.3.3在计算器中的异常8.4忠告8.5练习第9章源文件和程序9.1分别编译9.2连接9.2.1头文件9.2.2标准库头文件9.2.3单一定义规则9.2.4与非C++代码的连接9.2.5连接与指向函数的指针9.3使用头文件9.3.1单一头文件9.3.2多个头文件9.3.3包含保护符9.4程序9.4.1非局部变量的初始化9.5忠告9.6练习第二部分抽象机制第10章类10.1引言10.2类10.2.1成员函数10.2.2访问控制10.2.3构造函数10.2.4静态成员10.2.5类对象的复制10.2.6常量成员函数10.2.7自引用10.2.8结构和类10.2.9在类内部的函数定义10.3高效的用户定义类型10.3.1成员函数10.3.2协助函数10.3.3重载的运算符10.3.4具体类型的意义10.4对象10.4.1析构函数10.4.2默认构造函数10.4.3构造和析构10.4.4局部变量10.4.5自由存储10.4.6类对象作为成员10.4.7数组10.4.8局部静态存储10.4.9非局部存储10.4.10临时对象10.4.11对象的放置10.4.12联合10.5忠告10.6练习第11章运算符重载11.1引言11.2运算符函数11.2.1二元和一元运算符11.2.2运算符的预定义意义11.2.3运算符和用户定义类型11.2.4名字空间里的运算符11.3一个复数类型11.3.1成员运算符和非成员运算符11.3.2混合模式算术11.3.3初始化11.3.4复制11.3.5构造函数和转换11.3.6文字量11.3.7另一些成员函数11.3.8协助函数11.4转换运算符11.4.1歧义性11.5友元11.5.1友元的寻找11.5.2友元和成员11.6大型对象11.7基本运算符11.7.1显式构造函数11.8下标11.9函数调用11.10间接11.11增量和减量11.12一个字符串类11.13忠告11.14练习第12章派生类12.1引言12.2派生类12.2.1成员函数12.2.2构造函数和析构函数12.2.3复制12.2.4类层次结构12.2.5类型域12.2.6虚函数12.3抽象类12.4类层次结构的设计12.4.1一个传统的层次结构12.4.2抽象类12.4.3其他实现方式12.4.4对象创建的局部化12.5类层次结构和抽象类12.6忠告12.7练习第13章模板13.1引言13.2一个简单的String模板13.2.1定义一个模板13.2.2模板实例化13.2.3模板参数13.2.4类型等价13.2.5类型检查13.3函数模板13.3.1函数模板的参数13.3.2函数模板的重载13.4用模板参数描述策略13.4.1默认模板参数13.5专门化13.5.1专门化的顺序13.5.2模板函数的专门化13.6派生和模板13.6.1参数化和继承13.6.2成员模板13.6.3继承关系13.7源代码组织13.8忠告13.9练习第14章异常处理14.1错误处理14.1.1关于异常的其他观点14.2异常的结组14.2.1派生的异常14.2.2多个异常的组合14.3捕捉异常14.3.1重新抛出14.3.2捕捉所有异常14.4资源管理14.4.1构造函数和析构函数的使用14.4.2auto_ptr14.4.3告诫14.4.4异常和new14.4.5资源耗尽14.4.6构造函数里的异常14.4.7析构函数里的异常14.5不是错误的异常14.6异常的描述14.6.1对异常描述的检查14.6.2未预期的异常14.6.3异常的映射14.7未捕捉的异常14.8异常和效率14.9处理错误的其他方式14.10标准异常14.11忠告14.12练习第15章类层次结构15.1引言和概述15.2多重继承15.2.1歧义性解析15.2.2继承和使用声明15.2.3重复的基类15.2.4虚基类15.2.5使用多重继承15.3访问控制15.3.1保护成员15.3.2对基类的访问15.4运行时类型信息15.4.1dynamic_cast15.4.2在类层次结构中漫游15.4.3类对象的构造与析构15.4.4typeid和扩展的类型信息15.4.5RTTI的使用和误用15.5指向成员的指针15.5.1基类和派生类15.6自由存储15.6.1数组分配15.6.2虚构造函数15.7忠告15.8练习第三部分标准库第16章库组织和容器16.1标准库的设计16.1.1设计约束16.1.2标准库组织16.1.3语言支持16.2容器设计16.2.1专门化的容器和迭代器16.2.2有基类的容器16.2.3STL容器16.3向量16.3.1类型16.3.2迭代器16.3.3元素访问16.3.4构造函数16.3.5堆栈操作16.3.6表操作16.3.7元素定位16.3.8大小和容量16.3.9其他成员函数16.3.10协助函数16.3.11vector[bool]16.4忠告16.5练习第17章标准容器17.1标准容器17.1.1操作综述17.1.2容器综述17.1.3表示17.1.4对元素的要求17.2序列17.2.1向量—vector17.2.2表—list17.2.3双端队列—deque17.3序列适配器117.3.1堆栈—stack117.3.2队列—queue17.3.3优先队列—priority_queue17.4关联容器17.4.1映射—map17.4.2多重映射—multimap17.4.3集合—set17.4.4多重集合—multiset17.5拟容器17.5.1串—string17.5.2值向量—valarray17.5.3位集合—bitset17.5.4内部数组17.6定义新容器17.6.1散列映射—hash_map17.6.2表示和构造17.6.3其他散列关联容器17.7忠告17.8练习第18章算法和函数对象18.1引言18.2标准库算法综述18.3序列和容器18.3.1输入序列18.4函数对象18.4.1函数对象的基类18.4.2谓词18.4.3算术函数对象18.4.4约束器、适配器和否定器18.5非修改性序列算法18.5.1对每个做—for_each18.5.2查找族函数18.5.3计数18.5.4相等和不匹配18.5.5搜索18.6修改性序列算法18.6.1复制18.6.2变换18.6.3惟一化18.6.4取代18.6.5删除18.6.6填充和生成18.6.7反转和旋转18.6.8交换18.7排序的序列18.7.1排序18.7.2二分检索18.7.3归并18.7.4划分18.7.5序列上的集合运算18.8堆18.9最小和最大18.10排列18.11C风格算法18.12忠告18.13练习第19章迭代器和分配器19.1引言19.2迭代器和序列19.2.1迭代器的操作19.2.2迭代器特征类—iterator_traits19.2.3迭代器类别19.2.4插入器19.2.5反向迭代器19.2.6流迭代器19.3带检查迭代器19.3.1异常、容器和算法19.4分配器19.4.1标准分配器19.4.2一个用户定义分配器19.4.3广义的分配器19.4.4未初始化的存储19.4.5动态存储19.4.6C风格的分配19.5忠告19.6练习第20章串20.1引言20.2字符20.2.1字符特征类—char_traits20.3基础串类—basic_string20.3.1类型20.3.2迭代器20.3.3元素访问20.3.4构造函数20.3.5错误20.3.6赋值20.3.7到C风格字符串的转换20.3.8比较20.3.9插入20.3.10拼接20.3.11查找20.3.12替换20.3.13子串20.3.14大小和容量20.3.15I/O操作20.3.16交换20.4C标准库20.4.1C风格字符串20.4.2字符分类20.5忠告20.6练习第21章流21.1引言21.2输出21.2.1输出流21.2.2内部类型的输出21.2.3用户定义类型的输出21.3输入21.3.1输入流21.3.2内部类型的输入21.3.3流状态21.3.4字符的输入21.3.5用户定义类型的输入21.3.6异常21.3.7流的联结21.3.8哨位21.4格式化21.4.1格式状态21.4.2整数输出21.4.3浮点数输出21.4.4输出域21.4.5域的调整21.4.6操控符21.5文件流与字符串流21.5.1文件流21.5.2流的关闭21.5.3字符串流21.6缓冲21.6.1输出流和缓冲区21.6.2输入流和缓冲区21.6.3流和缓冲区21.6.4流缓冲区21.7现场21.7.1流回调21.8C输入/输出21.9忠告21.10练习第22章数值22.1引言22.2数值的限制22.2.1表示限制的宏22.3标准数学函数22.4向量算术22.4.1valarray的构造22.4.2valarray的下标和赋值22.4.3成员操作22.4.4非成员函数22.4.5切割22.4.6切割数组—slice_array22.4.7临时量、复制和循环22.4.8广义切割22.4.9屏蔽22.4.10间接数组—indirect_array22.5复数算术22.6通用数值算法22.6.1累积—accumulate22.6.2内积—inner_product22.6.3增量变化22.7随机数22.8忠告22.9练习第四部分用C++做设计第23章开发和设计23.1概述23.2引言23.3目的与手段23.4开发过程23.4.1开发循环23.4.2设计目标23.4.3设计步骤23.4.4试验和分析23.4.5测试23.4.6软件维护23.4.7效率23.5管理23.5.1重用23.5.2规模23.5.3个人23.5.4混成设计23.6带标注的参考文献23.7忠告第24章设计和编程24.1概述24.2设计和程序设计语言24.2.1忽视类24.2.2忽视继承24.2.3忽视静态类型检查24.2.4忽视程序设计24.2.5排他性地使用类层次结构24.3类24.3.1类表示什么24.3.2类层次结构24.3.3包容关系24.3.4包容和继承24.3.5使用关系24.3.6编入程序里的关系24.3.7类内的关系24.4组件24.4.1模板24.4.2界面和实现24.4.3肥大的界面24.5忠告第25章类的作用25.1类的种类25.2具体类型25.2.1具体类型的重用25.3抽象类型25.4结点25.4.1修改界面25.5动作25.6界面类25.6.1调整界面25.7句柄类25.7.1句柄上的操作25.8应用框架25.9忠告25.10练习附录和索引附录A语法附录B兼容性附录C技术细节附录D现场附录E标准库的异常时安全性索引
查看详情
好书推荐 / 更多
C++程序设计语言
见证:肖斯塔科维奇回忆录
叶琼芳 译;[俄]季米特里·肖斯塔科维奇 口述;[美]所罗门·伏尔科夫 整理
C++程序设计语言
黄昏的诉说
德里克·沃尔科特 著;[圣卢西亚]德里克·沃尔科特 编;刘志刚 马绍博 译
C++程序设计语言
演化
[法]让-巴普蒂斯特·德·帕纳菲厄(Jean-Baptiste de Panafieu)、[法]帕特里克·格里斯(Patrick Gries) 著;邢路达、胡晗、王维 译;[法]帕特里克·格里斯(Patrick Gries) 摄影
C++程序设计语言
群星
七月 著
C++程序设计语言
罪与罚:学术评论版(文学纪念碑)
[俄]费奥多尔·陀思妥耶夫斯基 著;曹国维 译
C++程序设计语言
涉渡之舟:新时期中国女性写作与女性文化
戴锦华 著
C++程序设计语言
伯林传
[加拿大]叶礼庭 著;罗妍莉 译
C++程序设计语言
韩国文学丛书:你的夏天还好吗?
[韩]金爱烂 著;薛舟 译
C++程序设计语言
洛城机密:洛城四部曲之三
[美]詹姆斯·艾尔罗伊 著;姚向辉 译
C++程序设计语言
两全其美
[美]梅尔·梅洛 著;李思璟 译
C++程序设计语言
近代山区社会的习惯、契约和权利——龙泉司法档案的社会史研究
杜正贞 著
C++程序设计语言
风雨鸡鸣:变动时代的读书人
罗志田 著