第Ⅰ部分 关键字、修饰符和语句 3
第1章 关键字 3
1.1 _alignof关键字 3
1.2 _asm关键字 4
1.3 _assume关键字 5
1.4 _based关键字 7
1.5 _cdecl关键字 8
1.6 _declspec关键字 9
1.7 _event关键字 11
引言 13
1.8 _except关键字 14
1.9 _fastcall关键字 16
1.10 _finally关键字 17
1.11 _forceinline关键字 19
1.12 _hook关键字 21
1.13 _identifier关键字 23
1.14 _if_exists关键字 23
1.15 _if_not_exists关键字 25
1.16 _inline 26
1.17 _int8、_int16、int32和_int64关键字 28
1.18 _interface关键字 29
1.19 _leave关键字 32
1.20 _m64关键字 33
1.22 _m128d关键字 34
1.21 _m128关键字 34
1.23 _m128i关键字 35
1.24 _multiple_inheritance关键字 35
1.25 _noop关键字 36
1.26 _raise关键字 37
1.27 _single_inheritance关键字 38
1.28 _stdcall关键字 39
1.29 _super关键字 40
1.30 _unhook关键字 41
1.31 _uuidof关键字 43
1.32 _virtual_inheritance关键字 44
1.33 _w64关键字 45
1.34 bool关键字 46
1.35 break关键字 47
1.36 case关键字 48
1.37 catch关键字 50
1.38 char关键字 55
1.39 class关键字 57
1.40 const关键字 59
1.41 const_cast关键字 59
1.42 continue关键字 60
1.43 default关键字 61
1.44 delete关键字 64
1.45 deprecate关键字 65
1.46 dllexport和dllimport关键字 65
1.47 do关键字 66
1.48 double关键字 67
1.49 dynamic_cast关键字 69
1.50 else关键字 72
1.51 enum关键字 73
1.52 explicit关键字 77
1.53 extern关键字 79
1.54 false关键字 81
1.55 float关键字 81
1.56 for关键字 83
1.57 friend关键字 86
1.58 goto关键字 86
1.59 if关键字 87
1.60 inline关键字 88
1.61 int关键字 90
1.62 long关键字 92
1.63 mutable关键字 94
1.64 naked关键字 95
1.65 namespace关键字 96
1.66 new关键字 98
1.67 noinline运算符 101
1.68 noreturn 101
1.69 nothrow关键字 102
1.70 novtable关键字 102
1.71 operator关键字 103
1.72 private关键字 107
1.74 protected关键字 109
1.73 property关键字 109
1.75 public关键字 111
1.76 register关键字 112
1.77 reinterpret_cast关键字 112
1.78 retum关键字 113
1.79 selectany关键字 114
1.80 short关键字 116
1.81 signed关键字 118
1.82 sizeof关键字 119
1.83 static关键字 121
1.84 static_cast关键字 123
1.85 struct关键字 125
1.86 switch关键字 127
1.87 template关键字 129
1.88 this关键字 133
1.89 thread关键字 135
1.90 throw关键字 137
1.91 true关键字 142
1.92 try关键字 142
1.93 try-except关键字 147
1.94 try-finally关键字 149
1.95 typedef关键字 151
1.96 typeid关键字 153
1.97 typename关键字 154
1.98.1 声明联合 155
1.98 union关键字 155
1.98.2 使用联合 156
1.99 unsigned关键字 157
1.100 using关键字 158
1.100.1 using声明 158
1.100.2 using指令 165
1.101 uuid关键字 166
1.102 virtual关键字 167
1.103 void关键字 167
1.104 volatile关键字 170
1.105 while关键字 170
第2章 控制对类成员的访问 172
3.1 基寻址 173
第3章 微软专用的修饰符 173
3.1.1 基指针_based语法 174
3.1.2 基指针 174
3.2 _cdecl调用约定 175
3.3 _stdcall调用约定 176
3.4 _fastcall调用约定 177
3.5 _declspec调用约定 178
3.5.1 deprecated属性 179
3.5.2 dllexport和dllimport属性 179
3.5.3 naked属性 180
3.5.4 noinline属性 180
3.5.5 noreturn关键字 180
3.5.6 nothrow属性 181
3.5.7 novtable属性 182
3.5.8 property属性 182
3.5.9 selectany属性 183
3.5.10 thread关键字 184
3.5.11 uuid属性 186
3.6 _w64调用约定 187
第4章 语句 188
4.1 带标记语句 189
4.2 表达式语句 190
4.3 空语句 190
4.5 选择语句 191
4.4 复合语句 191
4.5.1 if-else语句 192
4.5.2 _if_exists语句 192
4.5.3 _if_not_exists语句 193
4.5.4 switch语句 193
4.6 迭代语句 196
4.6.1 while语句 196
4.6.2 do-while语句 197
4.6.3 for语句 198
4.7 跳转语句 201
4.7.1 break语句 201
4.7.2 continue语句 202
4.7.3 return语句 202
4.7.4 goto语句 203
4.8 声明语句 204
4.8.1 自动对象的声明 205
4.8.2 静态对象的声明 207
第Ⅱ部分 C++特性 213
第5章 运算符重载 213
5.1 运算符重载的通用规则 215
第6章 C++运算符 219
6.1 加法类运算符 221
6.2 赋值类运算符 222
6.3 按位异或运算符^ 225
6.4 同或运算符| 225
6.5 逗号运算符, 226
6.6 条件运算符? 227
6.7 逻辑与运算符? 228
6.8 逻辑或运算符‖ 229
6.9 乘法类运算符 230
6.10 指向成员的指针类运算符 232
6.11 下标运算符[] 234
6.12 函数调用运算符() 236
6.13 转换运算符() 237
6.14 成员访问运算符 237
6.15 后缀增量运算符和后缀减量运算符 238
6.16 引用运算符? 240
6.17 关系运算符 241
6.18 相等类运算符 242
6.19 范围解析运算符∷ 243
6.20 移位类运算符 243
6.21 间接引用运算符? 244
6.22 address-of运算符? 245
6.23 逻辑非运算符! 247
6.24 求补运算符~ 248
6.25 前缀增量运算符和前缀减量运算符 249
6.26 sizeof运算符 250
6.27 delete运算符 252
6.28 new运算符 253
aggregatable属性 256
第7章 属性化编程 256
aggregates属性 257
appobject属性 259
async_uuid属性 260
bindable属性 260
call_as属性 262
case属性 263
coclass属性 264
com_interface_entry属性 265
control属性 268
cpp_quote属性 268
custom属性 269
db_accessor属性 270
db_column属性 271
db_command属性 273
db_param属性 279
db_source属性 281
db_table属性 282
default属性 283
defaultbind属性 285
defaultcollelem属性 286
defaultvalue属性 286
defaultvtable属性 288
dispinterface属性 289
displaybind属性 289
dual属性 290
emitidl属性 291
entry属性 292
event_receiver属性 292
Event_source属性 294
export属性 294
first_is属性 295
helpcontext属性 296
helpfile属性 297
helpstring属性 297
helpstringcontext属性 298
helpstringdll属性 298
id属性 299
hidden属性 299
idl_module属性 300
idl_quote属性 301
iid_is属性 303
immediatebind属性 304
implements_category属性 304
import属性 305
importidl属性 305
importlib属性 306
in属性 307
Include属性 307
last_is属性 308
includelib属性 308
lcid属性 309
length_is属性 310
library_block 310
licensed属性 311
local属性 311
max_is属性 312
module属性 312
ms_union属性 315
no_injected_text属性 316
nonbrowsable属性 316
noncreatable属性 317
odl属性 318
nonextensible属性 318
object属性 319
oleautomation属性 319
optional属性 320
out属性 320
pointer_default属性 321
pragma属性 321
progid属性 322
propget属性 323
propput属性 323
public属性 324
ptr属性 324
propputref属性 324
range属性 325
rdx属性 326
readonly属性 327
ref属性 328
registration_script属性 329
requestedit属性 330
requires_category属性 330
restricted属性 331
retval属性 332
satype属性 332
size_is属性 333
string属性 334
source属性 334
support_error_info属性 335
switch_is属性 336
switch_type属性 336
synchronize属性 337
threading属性 338
transmit_as属性 339
uidefault属性 340
unique属性 341
usesgetlasterror属性 341
uuid属性 342
vl_enum属性 342
vararg属性 343
version属性 344
vi_progid属性 344
wire_marshal属性 345
第8章 声明 346
8.1 说明符 347
8.1.1 存储类说明符 348
8.1.2 函数说明符 350
8.1.3 typedef说明符 356
8.1.4 friend说明符 360
8.1.5 C++类型说明符 360
8.2 const和volatile声明 365
8.2.1 const关键字 366
8.2.2 volatile关键字 368
8.3 C++枚举声明 369
8.3.1 枚举器常量的定义 373
8.3.2 转换和枚举类型 374
8.4 链接规范 375
8.5 命名空间声明 377
8.5.1 namespace声明 377
8.5.2 命名空间别名 381
8.5.3 定义命名空间成员 381
8.5.4 using声明 382
8.5.5 using指令 389
8.5.6 显式限定 390
9.1 声明符概述 391
第9章 声明符 391
9.2 类型名称 393
9.3 C++抽象声明符 394
9.3.1 多义性解决方案 395
9.3.2 指针 395
9.3.3 引用 397
9.3.4 指向成员的指针 404
9.3.5 继承关键字 407
9.3.6 数组 408
9.3.7 函数声明 412
9.3.8 默认参数 418
9.3.9 C++函数定义 420
9.3.10 带可变参数列表的函数 420
9.3.11 初始值设定项 423
第10章 类、结构和联合 430
10.1 类概述 431
10.2 类名 441
10.2.1 声明类名以及访问类名 442
10.2.2 typedef语句和类 443
10.3 类成员 443
10.3.1 类成员声明的语法 445
10.3.2 在成员列表中声明未确定大小的数组 446
10.3.3 类成员数据的存储 447
10.3.4 成员命名限制 447
10.4 成员函数 448
10.4.1 成员函数概述 450
10.4.2 this指针 451
10.5 静态数据成员 456
10.6 联合 458
10.7 C++位域 461
10.8 嵌套类声明 462
10.9 类范围中的类型名称 466
第11章 派生类 467
11.1 派生类概述 467
11.2 单一继承 468
11.3 多重继承 471
11.4 多重基类 472
11.5 虚拟基类 473
11.6 虚函数 476
11.7 显式重载 481
11.8 抽象类 486
11.9 范围规则总结 488
第12章 预处理器 490
12.1 预处理器指令 490
12.1.1 #define指令 491
12.1.2 error指令 493
12.1.3 #if、#elif、#else和#endif指令 493
12.1.4 #ifdef和#ifndef指令 496
12.1.5 #import指令 497
12.1.6 #include指令 498
12.1.7 #line指令 500
12.1.9 #pragma指令 501
12.1.8 Null指令 501
12.1.10 #undef指令 502
12.1.11 #using指令 503
12.2 预处理器运算符 504
12.2.1 字符串化运算符(#) 505
12.2.2 字符化运算符(#@) 505
12.3 宏 506
12.3.1 宏和C++ 507
12.3.2 预定义宏 508
第Ⅲ部分 C++规范的托管扩展 515
第13章 C++托管扩展规范 515
13.1 简介 515
13.2 托管类型概述 516
13.3 托管扩展关键字 517
13.3.1 _gc类 517
13.3.2 _value类 532
13.3.3 _gc接口 540
13.3.4 _gc指针 543
13.3.5 _gc引用 556
13.3.6 委托 557
13.3.7 事件 560
13.3.8 System∷String 565
13.3.9 _value枚举 567
13.3.10 属性 570
13.3.11 异常处理 578
13.3.12 嵌套类 581
13.3.13 托管类与非托管类的混合 582
13.3.14 _abstract关键字 585
13.3.15 _sealed关键字 586
13.3.16 静态类构造函数 587
13.3.17 托管运算符 588
13.3.18 元数据 593
13.3.19 _identifier关键字 601
13.3.20 _typeof关键字 601
13.3.21 为运行库编译代码 602
13.3.22 不支持的特性 603
附录A C++编译器选项 605
附录B Visual C++链接器选项 686