商家名称 | 信用等级 | 购买信息 | 订购本书 |
C++程序设计语言(斯特朗斯特鲁普著) | |||
C++程序设计语言(斯特朗斯特鲁普著) |
《C++程序设计语言(特别版·十周年中文纪念版)》:
十周年纪念版
体味C++语言的精妙与魅力
享受与大师的心灵对话
1979年,Biarne Stroustrup博士开始进行一项现在看来具有深远意义的工作一在C语言的基础上实现了内建支持面向对象程序设计方法的C with Classes,这就是震铄当代、让全世界数百万程序员如痴如狂的C++语言的前身。
1998年,ANSI/ISOC++标准建立,C++的标准化标志着Stroustrup博士俪注多年心血的伟大构想终于实现。
2000年,Stroustrup博士推出其经典著作The C++ Programming Language的特别版,这位C++之父将其对C++语言要义的理解、对编程精髓的把握、致C++程序员的箴言融会在这本书中,使《C++程序设计语言(特别版·十周年中文纪念版)》自面世以来便成为C++编程领域最重要的著作,对全世界C++程序员产生了广泛而深刻的影响。
十年后,让我们重温经典,体味C++语言的精妙与魅力,享受与大师的心灵对话……
C++之父的经典之作
第1版1985年,第2版1991年,第3版1997年,特别版2000年,让经典无限延伸……
《C++程序设计语言(特别版·十周年中文纪念版)》是在C++语言和程序设计领域具有深远影响、畅销不衰的著作,由C++语言之父Bjarne Stroustrup撰写,对C++语言进行了最全面、最权威的论述,覆盖标准C++以及由C++所支持的关键性编程技术和设计技术。《C++程序设计语言(特别版·十周年中文纪念版)》英文原版一经面世,即引起业内人士的高度评价和热烈欢迎,先后被翻译成德、希、匈、西、荷、法、日、俄、中、韩等近20种语言,数以百万计的程序员从中获益,是拥有最多读者、使用最广泛的C++著作。
在《C++程序设计语言(特别版·十周年中文纪念版)》英文原版面世10年后的今天,特别奉上十周年中文纪念版,希望众多具有丰富实战经验的C++开发人员能够温故而知新,印证学习心得,了解更加本质的C++知识,让获得的理论应用得更加灵活,也期望新的C++程序员从中认识到这本书的价值所在,从更高的起点出发,书写更加精彩的程序设计人生。
作者:(英国)斯特朗斯特鲁普(Bjarne Stroustrup);译者:裘宗燕
斯特朗斯特鲁普(Bjarne Stroustrup),英国剑桥大学计算机科学博士,C++语言的设计者和最初的实现者,也是《C++程序设计原理与实践》和《C++语言的设计和演化》的作者。他现在是德州农工大学计算机科学首席教授,同时不审AT&T贝尔实验室特别成员。1993年,由于在C++领域的重大贡献,他获得了ACM的Grace Murray Hopper大奖并成为ACM院士;2008年,他又获得了Dr.Dobb's杂志的程序设计杰出奖。在进入学术界之前,他在AT&T贝尔实验室工作。他是ISO C++标准委员会的创始人之一。
出版者的话
专家指导委员会
中文版序
译者序
序
第2版序
第1版序
导 论
第1章 致读者 3
1.1 本书的结构 3
1.1.1 例子和参考 4
1.1.2 练习 5
1.1.3 有关实现的注记 5
1.2 学习C++ 6
1.3 C++ 的设计 7
1.3.1 效率和结构 8
1.3.2 哲学注记 9
1.4 历史注记 9
1.5 C++ 的使用 11
1.6 C和C++ 12
1.6.1 给C程序员的建议 13
1.6.2 给C++程序员的建议 13
1.7 有关在C++里编程的思考 14
1.8 忠告 15
1.9 参考文献 16
第2章 C++概览 19
2.1 为什么是C++ 19
2.2 程序设计范型 19
2.3 过程式程序设计 20
2.3.1 变量和算术 21
2.3.2 检测和循环 22
2.3.3 指针和数组 23
2.4 模块程序设计 23
2.4.1 分别编译 24
2.4.2 异常处理 25
2.5 数据抽象 26
2.5.1 定义类型的模块 27
2.5.2 用户定义类型 28
2.5.3 具体类型 29
2.5.4 抽象类型 31
2.5.5 虚函数 33
2.6 面向对象的程序设计 33
2.6.1 具体类型的问题 33
2.6.2 类层次结构 34
2.7 通用型程序设计 36
2.7.1 容器 36
2.7.2 通用型算法 37
2.8 附言 38
2.9 忠告 39
第3章 标准库概览 40
3.1 引言 40
3.2 Hello, world! 40
3.3 标准库名字空间 41
3.4 输出 41
3.5 字符串 42
3.5.1 C风格的字符串 44
3.6 输入 44
3.7 容器 46
3.7.1 向量-vector 46
3.7.2 范围检查 47
3.7.3 表-list 48
3.7.4 映射-map 49
3.7.5 标准容器 49
3.8 算法 50
3.8.1 迭代器的使用 51
3.8.2 迭代器类型 52
3.8.3 迭代器和I/O 53
3.8.4 遍历和谓词 54
3.8.5 使用成员函数的算法 56
3.8.6 标准库算法 56
3.9 数学 57
3.9.1 复数 57
3.9.2 向量算术 57
3.9.3 基本数值支持 58
3.10 标准库功能 58
3.11 忠告 58
第一部分 基本功能
第4章 类型和声明 63
4.1 类型 63
4.1.1 基本类型 64
4.2 布尔量 64
4.3 字符类型 65
4.3.1 字符文字量 66
4.4 整数类型 66
4.4.1 整数文字量 66
4.5 浮点类型 67
4.5.1 浮点文字量 67
4.6 大小 68
4.7 void 69
4.8 枚举 69
4.9 声明 71
4.9.1 声明的结构 72
4.9.2 声明多个名字 73
4.9.3 名字 73
4.9.4 作用域 74
4.9.5 初始化 75
4.9.6 对象和左值 76
4.9.7 typedef 76
4.10 忠告 77
4.11 练习 77
第5章 指针、数组和结构 79
5.1 指针 79
5.1.1 零 80
5.2 数组 80
5.2.1 数组初始化 80
5.2.2 字符串文字量 81
5.3 到数组的指针 83
5.3.1 在数组里漫游 83
5.4 常量 85
5.4.1 指针和常量 87
5.5 引用 88
5.6 指向void的指针 90
5.7 结构 91
5.7.1 类型等价 94
5.8 忠告 94
5.9 练习 94
第6章 表达式和语句 96
6.1 一个桌面计算器 96
6.1.1 分析器 96
6.1.2 输入函数 100
6.1.3 低级输入 102
6.1.4 错误处理 103
6.1.5 驱动程序 104
6.1.6 头文件 104
6.1.7 命令行参数 105
6.1.8 有关风格的注记 106
6.2 运算符概览 107
6.2.1 结果 109
6.2.2 求值顺序 110
6.2.3 运算符优先级 110
6.2.4 按位逻辑运算符 111
6.2.5 增量和减量 112
6.2.6 自由存储 113
6.2.7 显式类型转换 116
6.2.8 构造函数 117
6.3 语句概览 118
6.3.1 声明作为语句 119
6.3.2 选择语句 119
6.3.3 迭代语句 122
6.3.4 goto 123
6.4 注释和缩进编排 123
6.5 忠告 125
6.6 练习 125
第7章 函数 128
7.1 函数声明 128
7.1.1 函数定义 128
7.1.2 静态变量 129
7.2 参数传递 130
7.2.1 数组参数 131
7.3 返回值 132
7.4 重载函数名 133
7.4.1 重载和返回类型 135
7.4.2 重载与作用域 135
7.4.3 手工的歧义性解析 135
7.4.4 多参数的解析 136
7.5 默认参数 137
7.6 未确定数目的参数 138
7.7 指向函数的指针 139
7.8 宏 143
7.8.1 条件编译 145
7.9 忠告 145
7.10 练习 146
第8章 名字空间和异常 148
8.1 模块化和界面 148
8.2 名字空间 150
8.2.1 带限定词的名字 151
8.2.2 使用声明 152
8.2.3 使用指令 153
8.2.4 多重界面 154
8.2.5 避免名字冲突 157
8.2.6 名字查找 159
8.2.7 名字空间别名 159
8.2.8 名字空间组合 160
8.2.9 名字空间和老代码 163
8.3 异常 166
8.3.1 抛出和捕捉 167
8.3.2 异常的辨识 168
8.3.3 在计算器中的异常 169
8.4 忠告 173
8.5 练习 173
第9章 源文件和程序 175
9.1 分别编译 175
9.2 连接 176
9.2.1 头文件 178
9.2.2 标准库头文件 179
9.2.3 单一定义规则 180
9.2.4 与非C++代码的连接 182
9.2.5 连接与指向函数的指针 184
9.3 使用头文件 184
9.3.1 单一头文件 184
9.3.2 多个头文件 187
9.3.3 包含保护符 191
9.4 程序 192
9.4.1 非局部变量的初始化 192
9.5 忠告 194
9.6 练习 194