图书介绍
Sun ONE Studio C++程序员手册pdf电子书版本下载
- Sun Microsystems,Inc著;高波,林宇译 著
- 出版社: 北京:机械工业出版社
- ISBN:7111110927
- 出版时间:2002
- 标注页数:292页
- 文件大小:17MB
- 文件页数:312页
- 主题词:
PDF下载
下载说明
Sun ONE Studio C++程序员手册PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 C++编译器概述 2
1.1 所遵循的标准 2
1.2 C++Readme文件 2
第一部分 C++编译器 2
1.3 手册页 3
1.4 许可 3
1.5 C++编译器的新特性 3
1.6 C++工具 5
1.7 本地语言的支持 5
第2章 使用C++编译器 6
2.1 开始使用 6
2.2 运行编译器 7
2.2.1 命令语法 7
本书表格 8
表2-1 C++编译器可识别的文件后缀名 8
2.2.2 文件命名惯例 8
2.2.3 使用多个源文件 8
2.3 用不同版本的编译器编译 9
2.4.2 单独的编译和连接 10
2.4.3 一致编译和连接 10
2.4.1 编译连接的顺序 10
2.4 编译和连接 10
2.4.4 SPARC V9的编译 11
2.4.5 诊断编译器 12
2.4.6 理解编译器的组织 12
表2-2 C++编译系统的组件 13
2.5.2 #define所列的可变参数 14
2.5.1 Pragmas 14
2.5 预处理指令和名称 14
2.5.3 预定义的名字 15
2.5.4 #error 15
2.6.1 交换区的大小 15
2.6.2 增大交换区 15
2.6 内存需求 15
2.6.3 控制虚拟内存 16
2.6.4 内存的需求 16
2.7 简化命令 17
2.7.1 在C shell中使用别名 17
2.7.2 使用CCFLAGS来指定编译选项 17
2.7.3 使用make 17
表3-1 选项语法格式的例子 20
第3章 使用C++的编译器选项 20
3.1 语法 20
3.2 通用的法则 20
3.3.1 代码生成选项 21
3.3.2 调试选项 21
3.3 按功能概述选项 21
表3-2 代码生成选项 21
表3-3 调试选项 22
表3-4 浮点选项 22
3.3.3 浮点选项 22
表3-5 语言选项 23
3.3.4 语言选项 23
3.3.5 库选项 23
表3-6 库选项 23
3.3.6 许可选项 24
3.3.7 过时的选项 24
表3-8 过时的选项 24
表3-7 许可选项 24
3.3.8 输出选项 25
表3-9 输出选项 25
表3-10 性能选项 26
3.3.9 性能选项 26
表3-13 参考选项 27
3.3.11 配置选项 27
表3-11 预处理器选项 27
表3-12 配置选项 27
3.3.10 预处理器选项 27
3.3.13 源选项 27
3.3.12 参考选项 27
表3-14 源选项 28
表3-15 模板选项 28
3.3.14 模板选项 28
3.3.15 线程选项 28
表3-16 线程选项 28
4.2 enum类型和变量的前置声明 30
第二部分 编写C++程序 30
第4章 语言扩展 30
4.1 重载更少限定性的虚函数 30
4.3 使用不完整的enum类型 31
4.4 将enum名作为范围限定词 31
4.5 使用匿名struct体声明 31
4.6 传递匿名类实例的地址 33
4.7 声明静态的命名空间函数作为类的友元 33
4.8 为函数名使用预定义_func_符号 34
第5章 程序组织 35
5.1 头文件 35
5.1.1 语言适应性头文件 35
5.1.2 幂等头文件 36
5.2 模板定义 36
5.2.1 包含式模板定义 37
5.2.2 分离式模板定义 37
6.1.2 函数模板定义 39
6.1.1 函数模板声明 39
6.1 函数模板 39
第6章 创建和使用模板 39
6.2.2 类模板定义 40
6.2.1 类模板声明 40
6.2 类模板 40
6.1.3 使用函数模板 40
6.2.3 类模板成员定义 41
6.3 模板实例化 42
6.2.4 使用类模板 42
6.3.3 显式模板实例化 43
6.3.1 隐式模板实例化 43
6.3.2 类整体实例化 43
6.4 模板合成 44
6.5 默认模板参数 45
6.6 模板特殊化 45
6.6.1 模板特殊化声明 45
6.6.2 模板特殊化定义 45
6.6.3 模板特殊化的使用和实例化 46
6.6.4 部分特殊化 46
6.7.2 本地类型作为模板参数 47
6.7.1 非本地命名解析和实例化 47
6.7 模板使用中的问题 47
6.7.3 模板函数的友元声明 48
本书代码例子 48
代码例子6-1 本地类型作为模板参数问题的例子 48
代码例子6-2 友元声明问题的例子 48
6.7.4 在模板定义中使用限定名 50
6.7.5 嵌套模板声明 51
6.7.6 引用静态变量和静态函数 51
6.7.7 在同一目录中建立多个使用模板的程序 51
第7章 编译模板 55
7.1 verbose编译 55
7.2 模板命令 55
7.3 模板实例的放置和连接 55
7.3.1 外部实例 56
7.3.3 全局实例 56
7.3.2 静态实例 56
7.3.4 显式实例 57
7.3.5 半显式实例 57
7.4 模板库 57
7.4.1 库结构 57
7.4.2 写入模板库 57
7.4.3 读取多个模板库 58
7.4.4 共享模板库 58
7.5 模板定义搜索 58
7.5.1 源文件定位规则 58
7.6 模板实例的自动一致性 59
7.5.2 定义搜索路径 59
7.8 模板选项文件 59
7.7 编译时间实例化 59
7.8.1 注释 60
7.8.2 文件包含 60
7.8.3 源文件扩展名 60
7.8.4 定义源位置 60
代码例子7-1 冗余的定义条目 61
代码例子7-2 静态数据成员的定义和简单名称的使用 61
代码例子7-3 模板成员函数的定义 61
7.8.5 模板特殊化入口 62
代码例子7-4 不同源文件中的模板函数的定义 62
代码例子7-5 nocheck选项 62
代码例子7-6 特殊化入口 63
代码例子7-9 特殊化一个模板类 63
代码例子7-7 应使用特殊化入口的例子 63
代码例子7-8 重载特殊化入口 63
代码例子7-10 特殊化静态模板类成员 64
第8章 异常处理 65
8.2 指定运行时错误 65
8.1 同步和异步异常 65
8.3 禁止异常 66
8.4 使用运行时函数和预定义的异常 66
8.5 带有信号和Setjmp/Longjmp的混合异常 67
8.6 建立带有异常的共享库 68
第9章 Cast操作符 69
9.1 const_cast 69
9.2 reinterpret_cast 70
9.3 static_cast 71
9.4 dynamic_cast 71
9.4.3 继承层次的向下和水平类型转换 72
9.4.1 继承层次的向上类型转换 72
9.4.2 转换为void 72
10.1 避免临时对象 76
第10章 增强程序性能 76
10.2 使用内联函数 76
10.3 使用默认操作 77
10.4 使用数值类 77
表10-1 不同体系结构传递struct和联合体的方式 78
10.4.1 选择直接传递类 78
10.4.2 各种处理器上直接传递类 78
10.5 缓存成员变量 79
第11章 多线程程序 80
11.1 建立多线程程序 80
11.1.1 隐式的多线程编译 80
11.1.2 使用C++支持的线程和信号库 81
11.2 在多线程程序中使用异常 81
11.3 在线程间共享C++标准库对象 81
11.4.1 MT-Safe iostream库的组织 84
表11-1 iostream原核心类 84
11.4 在多线程环境中使用经典的iostream 84
表11-2 MT-Safe的可重入公有函数 85
代码例子11-1 检测错误状态 86
代码例子11-2 调用gcount 87
代码例子11-3 用户定义的I/O操作 88
代码例子11-4 禁用MT-Safty 88
代码例子11-5 切换到MT-Unsafe 89
代码例子11-6 MT-Unsafe对象的同步 89
11.4.2 iostream库的接口变化 89
代码例子11-7 新类 90
代码例子11-8 新类层次 90
代码例子11-9 新的函数 91
11.4.3 全局和静态数据 92
11.4.4 顺序执行 93
11.4.5 象锁定 93
代码例子11-10 使用锁定操作的例子 94
11.4.6 MT-Safe类 95
11.4.7 象析构 95
代码例子11-11 使I/O操作和错误检查原子化 95
代码例子11-12 销毁一个共享对象 96
11.4.8 一个应用程序实例 96
代码例子11-13 以MT-Safe安全方式使用流对象 97
第12章 使用库 102
12.2 C++编译器提供的库 102
12.1 C库 102
表12-1 和C++编译器一起提供的库 102
第三部分 库 102
12.2.1 C++库的描述 103
12.2.2 访问C++库的手册页 104
12.2.3 默认的C++库 104
12.3 相关的库选项 105
12.4 使用类库 106
12.4.1 iostream库 106
12.4.2 复数库 107
12.4.3 连接C++库 108
12.5 静态连接标准库 109
表12-2 连接C++库的编译器选项 109
12.6 使用共享库 110
12.7.1 哪些可以被替换 111
12.7 替换C++标准库 111
12.7.4 使用替换的库 112
12.7.5 标准头文件的实现 112
12.7.2 哪些不能被替换 112
12.7.3 安装替换的库 112
表12-3 头文件搜索的例子 113
第13章 使用C++的标准库 115
13.1 C++标准库头文件 116
表13-1 C++标准库的头文件 116
表13-2 C++标准库手册 117
13.2 C++标准库手册页 117
13.3 STLport 126
第14章 使用经典的iostream库 128
14.1 共享libiostream 128
14.2 预定义的iostream 129
14.3 iostream交互的基本结构 129
表14-1 iostream例程的头文件 130
14.4 使用经典的iostream库 130
14.4.1 使用iostream输出 131
14.4.2 使用iostream输入 133
14.4.4 使用char的提取符 134
14.4.3 定义自己的提取操作符 134
代码例子14-1 string提取操作符 134
14.4.5 读任意的单独字符 135
14.4.6 二进制输入 135
14.4.7 查看输入字符 135
14.4.8 提取空白字符 136
14.4.9 处理输入错误 136
14.5 创建iostream 137
14.4.10 使用iostream和stdio 137
14.6 iostream的赋值 140
14.7 格式控制 140
14.8 操纵符 140
表14-2 iostream预定义的操纵符 140
14.8.1 使用无格式的操纵符 141
14.8.2 带参数的操纵符 142
14.9 数组的strstreams:iostream 144
14.10 stdio文件的stdiobufs:iostream 144
14.11 streambuf 144
14.11.1 处理streambuf 144
14.12 iostream手册页 145
14.11.2 使用streambuf 145
14.13 iostream的术语 146
表14-3 iostream手册页概述 146
表14-4 iostream术语 147
第15章 使用复数库 148
15.1 复数库 148
15.2 复数类型 149
15.2.1 complex类的构造函数 149
15.2.2 算术操作符 150
15.3 算术函数 150
15.4 错误处理 151
表15-1 复数算术库的函数 151
表15-2 复数的算术和三角函数 151
表15-3 复数算术库函数的默认错误处理 152
15.5 输入和输出 152
15.6 混合模式的算术 153
表15-4 complex类型的手册页 154
15.8 复数的手册页 154
15.7 效率 154
16.1 理解库 155
第16章 创建库 155
16.3 创建动态(共享)库 156
16.2 创建静态(文档)库 156
16.4 创建包含异常的共享库 157
16.5 创建私用的库 157
16.6 创建公用的库 157
16.7 创建一个有C API的库 158
16.8 使用dlopen从C程序访问C++库 158
附录A C++编译器选项 162
A.1 选项信息是如何组织的 162
附录 162
表A-2 选项分段 162
表A-1 选项语法格式举例 162
A.2 选项参考 163
A.2.1 -386 163
A.2.2 -486 163
A.2.3 -a 163
A.2.4 -Bbinding 163
A.2.5 -c 164
A.2.6 -cg{89192} 165
A.2.7 -compat[={4|5}] 165
A.2.8 +d 166
A.2.9 -D[]name[=def] 167
表A-3 预定义宏 167
A.2.10 -d{y|n} 168
A.2.11 -dalign 169
A.2.12 -dryrun 169
A.2.13 -E 169
代码例子A-1 预处理器例子程序foo.cc 170
代码例子A-2 使用-E选项的预处理器输出 170
A.2.14 +e{0|1} 170
A.2.15 -fast 171
表A-4 -fast扩展 171
A.2.16 -features=a[,a...] 173
表A-5 兼容模式和标准模式的-features选项 173
表A-6 仅用于标准模式的-features选项 174
表A-7 仅用于兼容模式的-features选项 174
表A-8 -filt选项 175
A.2.17 -filt[=filter[,filter...]] 175
A.2.20 -fns[={yes|no}] 177
A.2.19 -fnonstd 177
A.2.18 -flags 177
A.2.21 -fprecision=p 178
A.2.22 -fround=r 179
A.2.23 -fsimple[=n] 180
A.2.25 -ftrap=t[,t...] 181
A.2.24 -fstore 181
A.2.26 -G 182
A.2.27 -g 183
A.2.30 -h[]name 184
A.2.29 -H 184
A.2.28 -g0 184
A.2.32 -Ipathname 185
A.2.31 -help 185
A.2.33 -I 185
A.2.34 -i 187
A.2.35 -inline 187
A.2.36 -instances=a 187
A.2.37 -keeptmp 188
A.2.38 -KPIC 188
A.2.39 -Kpic 188
A.2.40 -Lpath 188
A.2.44 -library=l[,l...] 189
A.2.43 -libmil 189
A.2.42 -libmieee 189
A.2.41 -llib 189
表A-9 兼容模式的-library选项 190
表A-10 标准模式的-library选项 190
A.2.45 -mc 193
A.2.46 -migration 193
A.2.47 -misalign 193
A.2.49 -mt 194
A.2.48 -mr[,string] 194
A.2.50 -native 195
A.2.51 -noex 195
A.2.52 -nofstore 195
A.2.53 -nolib 195
A.2.54 -nolibmil 195
A.2.55 -noqueue 195
A.2.56 -norunpath 195
A.2.59 -O filename 196
A.2.60 +p 196
A.2.57 -O 196
A.2.58 -Olevel 196
A.2.61 -P 197
A.2.62 -p 197
A.2.63 -pentium 197
A.2.64 -Pg 197
A.2.65 -PIC 197
A.2.66 -pic 197
A.2.70 -ptr 198
A.2.72 -Qoption phase option[,option...] 198
A.2.71 -ptv 198
A.2.69 -pto 198
A.2.68 -ptipath 198
A.2.67 -pta 198
A.2.73 -qoption phase option 199
A.2.74 -qp 199
A.2.75 -Qproduce sourcetype 199
A.2.76 -qproduce sourcetype 200
A.2.77 -Rpathname[:pathname...] 200
A.2.78 -readme 200
A.2.79 -S 200
A.2.80 -s 201
A.2.81 -sb 201
A.2.82 -sbfast 201
A.2.83 -staticlib=l[,l...] 201
A.2.84 -temp=path 202
A.2.85 -template=opt[,opt...] 203
A.2.86 -time 203
A.2.87 -Uname 203
A.2.88 -unroll=n 204
A.2.89 -V 204
A.2.90 -v 204
A.2.91 -vdelx 204
A.2.92 -verbose=v[,v...] 204
A.2.93 +w 205
A.2.94 +w2 205
A.2.97 -xalias_level[=n] 206
A.2.95 -w 206
A.2.96 -xa 206
A.2.98 -xar 208
A.2.99 -xarch=isa 209
表A-11 SPARC平台的-xarch值 209
A.2.100 -xbuiltin[={%all|%none}] 211
表A-12 IA平台的-xarch值 211
A.2.101 -xcache=c 212
A.2.102 -xcg89 213
A.2.103 -xcg92 213
A.2.104 -xcheck[=i] 214
A.2.105 -xchip=c 214
表A-13 -xcheck值 214
表A-14 -chip选项 215
A.2.106 -xcode=a 215
A.2.107 -xcrossfile[=n] 216
表A-15 -xcode选项 216
A.2.110 -xhelp=readme 217
A.2.108 -xF 217
A.2.109 -xhelp=flags 217
A.2.111 -xia 218
A.2.112 -xildoff 218
A.2.113 -xildon 218
表A-16 -xinline选项 219
A.2.114 -xinline[=func_spec [,func_spec...]] 219
A.2.115 -xipo[={0|1|2}] 220
A.2.116 -xlang=language[,language] 221
A.2.118 -xlibmil 222
A.2.117 -xlibmieee 222
A.2.119 -xlibmopt 223
A.2.120 -xlic_lib=sunperf 223
A.2.122 -Xm 224
A.2.123 -xM 224
A.2.124 -xMl 224
A.2.125 -xMerge 224
A.2.121 -xlicinfo 224
A.2.127 -xnolib 225
A.2.126 -xnativeconnect[=i] 225
A.2.128 -xnolibmil 227
A.2.129 -xnolibmopt 227
A.2.130 -xopenmp[=i] 227
A.2.131 -xOlevel 228
A.2.132 -xpg 230
A.2.133 -xprefetch[=a[,a]] 230
表A-17 -xprefetch值 231
A.2.134 -xprefetch_level[=i] 232
表A-18 -xprefetch_level值 232
表A-19 -xprofile选项 233
A.2.135 -xprofile=p 233
A.2.136 -xregs=r[,r...] 234
A.2.137 -xs 235
A.2.138 -xsafe=mem 235
A.2.139 -xsb 236
A.2.140 -xsbfast 236
A.2.141 -xspace 236
A.2.142 -xtarget=t 236
表A-20 SPARC平台的-xtarget值 236
表A-21 -xtarget的SPARC平台名称 237
表A-23 Intel结构的-xtarget扩展 241
表A-22 IA平台的-xtarget值 241
A.2.143 -xtime 242
A.2.144 -xunroll=n 242
A.2.145 -xtrigraphs[={yeslno}] 242
A.2.146 -xwe 243
A.2.147 -z[]arg 244
附录B Pragmas 245
B.1 Pragma的格式 245
B.2 Pragma参考 246
B.2.1 #pragma align 246
B.2.2 #pragma init 246
B.2.3 #pragma fini 247
B.2.5 #pragma no_side_effect 247
B.2.4 #pragma ident 247
表B-2 存储空间字节和默认空间分配字节 248
表B-1 平台最大空间分配值表A-18 -xprefetch_level值 248
B.2.6 #pragma pack(n) 248
B.2.7 #pragma retums_new_memory 249
B.2.8 #pragma unknown_control_flow 249
B 2.9 #pragma weak 250
附录C Sun ONE Studio 7, Solaris企业版浏览向导(原Forte Developer,企业版7) 252
C.1 启动Sun ONE Studio 7——用于Solaris IDE的企业版 252
C.1.1 获得产品许可 253
C.1.2 安装Sun ONE Studio 7——用于Solaris产品企业版 253
C.1.3 访问Sun ONE Studio 7——用于Solaris在线产品的企业版 253
C.1.4 系统需求 253
C.1.5 开始浏览 254
C.2 创建代码 257
C.2.1 Makefile向导 257
C.2.2 启动Build 258
C.2.3 其他的创建特性 259
C.3 本地连接器工具 260
C.3.1 运用范例 260
C.3.3 创建共享库 261
C.3.2 设置环境 261
C.3.4 创建本地连接器描述文件 262
C.3.5 选择用于Java API的接口 263
C.3.6 生成本地连接器组件 264
C.3.7 执行文件状态程序 265
C.4.2 开始调试程序 266
C.4.1 准备一个用于调试的程序 266
C.4 调试器 266
C.4.3 打开调试器窗口 268
C.4.5 设置断点 269
C.4.4 单步执行代码 269
C.4.6 运行程序 269
C.4.7 使用Fix和Continue 271
C.4.8 使用运行时检查 272
C.4.9 设置监视 273
C.4.10 调试Java程序 274
C.4.11 其他调试特性 278
C.5 性能分析器 279
C.5.1 性能分析 279
C.5.2 分析数据 279
C.6 用于Solaris的Sun ONE Studio 7企业版的工具 283
C.6.1 X-Designer软件 283
C.6.2 支持CVS 284
C.6.3 具体语言的特性 284
C.7 获得更多信息 285
术语表 286