引言
第I部分 关键字、修饰符和语句
第1章 关键字
1.1 __alignof关键字
1.2 __asm关键字
1.3 __assume关键字
1.4 __based关键字
1.5 __cdecl关键字
1.6 __declspec关键字
1.7 __event关键字
1.8 __except关键字
1.9 __fastcall关键字
1.10 __finally关键字
1.11 __forceinline关键字
1.12 __hook关键字
1.13 __identifier关键字
1.14 __if_exists关键字
1.15 __if_not_exists关键字
1.16 __inline关键字
1.17 __int8、__intl6、__int32和__int64关键字
1.18 __interface关键字
1.19 __leave关键字
1.20 __m64关键字
1.21 __m128关键字
1.22 __m128d关键字
1.23 __m128i关键字
1.24 __multiple_inheritance关键字
1.25 __noop关键字
1.26 __raise关键字
1.27 __single_inheritance关键字
1.28 __stdcall关键字
1.29 __super关键字
1.30 __uuhook关键字
1.31 __uuidof关键字
1.32 __virtual_inheritance关键字
1.33 __w64关键字
1.34 bool关键字
1.35 break关键字
1.36 case关键字
1.37 catch关键字
1.38 char关键字
1.39 class关键字
1.40 const关键字
1.41 const_cast关键字
1.42 continue关键字
1.43 default关键字
1.44 delete关键字
1.45 deprecate关键字
1.46 dllexport和dllimport关键字
1.47 do关键字
1.48 double关键字
1.49 dynamic_cast关键字
1.50 else关键字
1.51 enum关键字
1.52 explicit关键字
1.53 extern关键字
1.54 false关键字
1.55 float关键字
1.56 for关键字
1.57 friend关键字
1.58 goto关键字
1.59 if关键字
1.60 inline关键字
1.61 int关键字
1.62 long关键字
1.63 mutable关键字
1.64 naked关键字
1.65 namespace关键字
1.66 new关键字
1.67 noinline关键字
1.68 noreturn关键字
1.69 nothrow关键字
1.70 novtable关键字
1.71 operator关键字
1.72 private关键字
1.73 property关键字
1.74 protected关键字
1.75 public关键字
1.76 register关键字
1.77 reinterpret_cast关键字
1.78 return关键字
1.79 selectany关键字
1.80 short关键字
1.81 signed关键字
1.82 sizeof关键字
1.83 static关键字
1.84 static_cast关键字
1.85 struct关键字
1.86 switch关键字
1.87 template关键字
1.88 this关键字
1.89 thread关键字
1.90 throw关键字
1.91 true关键字
1.92 try关键字
1.93 try-except关键字
1.94 try-finally关键字
1.95 typedef关键字
1.96 typeid关键字
1.97 typename关键字
1.98 union关键字
1.98.1 声明联合
1.98.2 使用联合
1.99 unsigned关键字
1.100 using关键字
1.100.1 using关键字
1.100.2 using关键字
1.101 uuid关键字
1.102 virtual关键字
1.103 void关键字
1.104 volatile关键字
1.105 while关键字
第2章 控制对类成员的访问
第3章 微软专用的修饰符
3.1 基寻址
3.1.1 基指针__based语法
3.1.2 基指针
3.2 __cdecl调用约定
3.3 __stdcall调用约定
3.4 __fastcall调用约定
3.5 __declspec调用约定
3.5.1 deprecated
3.5.2 dllexport和dllimport
3.5.3 naked属性
3.5.4 noinline属性
3.5.5 noreturn关键字
3.5.6 nothrow属性
3.5.7 novtable属性
3.5.8 property属性
3.5.9 selectany属性
3.5.10 thread关键字
3.5.11 uuid属性
3.6 __w64调用约定
第4章 语句
4.1 带标记语句
4.2 表达式语句
4.3 空语句
4.4 复合语句
4.5 选择语句
4.5.1 if-else语句
4.5.2 __if_exists语句
4.5.3 __if_not_exists语句
4.5.4 switch语句
4.6 迭代语句
4.6.1 while语句
4.6.2 do-while语句
4.6.3 for语句
4.7 跳转语句
4.7.1 break语句
4.7.2 continue语句
4.7.3 return语句
4.7.4 goto语句
4.8 声明语句
4.8.1 自动对象的声明
4.8.2 静态对象的声明
第II部分 C++特性
第5章 运算符重载
5.1 运算符重载的通用规则
第6章 C++运算符
6.1 加法类运算符
6.2 赋值类运算符
6.3 按位异或运算符^
6.4 同或运算符|
6.5 逗号运算符,
6.6 条件运算符?:
6.7 逻辑与运算符&&
6.8 逻辑或运算符||
6.9 乘法类运算符
6.10 指向成员的指针类运算符
6.11 下标运算符[]
6.12 函数调用运算符()
6.13 转换运算符()
6.14 成员访问运算符
6.15 后缀增量运算符和后缀减量运算符
6.16 引用运算符&
6.17 关系运算符
6.18 相等类运算符
6.19 范围解析运算符::
6.20 移位类运算符
6.21 间接引用运算符*
6.22 address-of运算符&
6.23 逻辑非运算符!
6.24 求补运算符~
6.25 前缀增量运算符和前缀减量运算符
6.26 sizeof运算符
6.27 delete运算符
6.28 new运算符
第7章 属性化编程
aggregatable属性
aggregates属性
appobject属性
async_uuid属性
bindable属性
call_as属性
case属性
coclass属性
com_interfacew_entry属性
control属性
cpp_quote属性
custom属性
db_accessor属性
db_column属性
db_command属性
db_param属性
db_source属性
db_table属性
default属性
defaultbind属性
defaultcollelem属性
defaultvalue属性
defaultvtable属性
dispinterface属性
displaybind属性
dual属性
emitidl属性
entry属性
event_receiver属性
Event_source属性
export属性
first_is属性
helpcontext属性
helpefile属性
helpstring属性
helpstringcontext属性
helpstringdll属性
hidden属性
id属性
idl_module属性
idl_quote属性
iid_is属性
immediatebind属性
jimplements_category属性
import属性
importlib属性
in属性
Include属性
includelib属性
last_is属性
lcid属性
length_is属性
library_block属性
licensed属性
local属性
max_is属性
module属性
ms_union属性
no_injected_text属性
nonbrowsable属性
nonextensible属性
odl属性
object属性
oleautomation属性
optional属性
out属性
pointer_default属性
pragma属性
progid属性
propget属性
propput属性
propputref属性
ptr属性
public属性
range属性
rdx属性
readonly属性
ref属性
registration_script属性
requestedit属性
requires_category属性
restricted属性
retval属性
satype属性
size_is属性
source属性
string属性
support_error_info属性
switch_is属性
switch_type属性
synchronize属性
threading属性
transmit_as属性
uidefault属性
unique属性
usesgetlasterror属性
uuid属性
v1_enum属性
vararg属性
version属性
vi_progid属性
wire_marshal属性
第8章 声明
8.1 说明符
8.1.1 存储类说明符
8.1.2 函数说明符
8.1.3 typedef说明符
8.1.4 friend说明符
8.1.5 C++类型说明符
8.2 const和volatile声明
8.2.1 const关键字
8.2.2 volatile关键字
8.3 C++枚举声明
8.3.1 枚举器常量的定义
8.3.2 转换和枚举类型
8.4 链接规范
8.5 命名空间声明
8.5.1 namespace声明
8.5.2 命名空间别名
8.5.3 定义命名空间成员
8.5.4 using声明
8.5.5 using指令
8.5.6 显式限定
第9章 声明符
9.1 声明符概述
9.2 类型名称
9.3 C++抽象声明符
9.3.1 多义性解决方案
9.3.2 指针
9.3.3 引用
9.3.4 指向成员的指针
9.3.5 继承关键字
9.3.6 数组
9.3.7 函数声明
9.3.8 默认参数
9.3.9 C++函数定义
9.3.10 带可变参数列表的函数
9.3.11 初始值设定项
第10章 类、结构和联合
10.1 类概述
10.2 类名
10.2.1 声明类名以及访问类名
10.2.2 typedef语句和类
10.3 类成员
10.3.1 类成员声明的语法
10.3.2 在成员列表中声明未确定大小的数组
10.3.3 类成员数据的存储
10.3.4 成员命名限制
10.4 成员函数
10.4.1 成员函数概述
10.4.2 this指针
10.5 静态数据成员
10.6 联合
10.7 C++位域
10.8 嵌套类声明
10.9 类范围中的类型名称
第11章 派生类
11.1 派生类概述
11.2 单一继承
11.3 多重继承
11.4 多重基类
11.5 虚拟基类
11.6 虚函数
11.7 显式重载
11.8 抽象类
11.9 范围规则总结
第12章 预处理器
12.1 预处理器指令
12.1.1 #define指令
12.1.2 error指令
12.1.3 #if、#elif、#else和#endif指令
12.1.4 #ifdef和#ifndef指令
12.1.5 #import指令
12.1.6 #include指令
12.1.7 #line指令
12.1.8 Null指令
12.1.9 #pragma指令
12.1.10 #undef指令
12.1.11 #using指令
12.2 预处理器运算符
12.2.1 字符串化运算符(#)
12.2.2 字符化运算符(#@)
12.3 宏
12.3.1 宏和C++
12.3.2 预定义宏
第III部分 C++规范的托管扩展
第13章 C++托管扩展规范
13.1 简介
13.2 托管类型概述
13.3 托管扩展关键字
13.3.1 __gc类
13.3.2 __value类
13.3.3 __gc接口
13.3.4 __gc指针
13.3.5 __gc引用
13.3.6 委托
13.3.7 事件
13.3.8 System::String
13.3.9 __value枚举
13.3.10 属性
13.3.11 异常处理
13.3.12 嵌套类
13.3.13 托管类与非托管类的混合
13.3.14 __abstract关键字
13.3.15 __sealed关键字
13.3.16 静态类构造函数
13.3.17 托管运算符
13.3.18 元数据
13.3.19 __identifier关键字
13.3.20 __typeof关键字
13.3.21 为运行库编译代码
13.3.22 不支持的特性
附录A C++编译器选项
附录B Visual C++链接器选项