C++编程自学宝典

C++编程自学宝典

赞助商:FreeBuf官方

价格:15金币

已售:0剩余:99

产品描述

内容提要:
作为一门广为人知的编程语言,C++已经诞生30多年了,这期间也出现并流行过许多种编程语言,但是C++是经得起考验的。如此经典的编程语言,值得每一位编程领域的新人认真学习,也适合有经验的程序员细细品味。 本书旨在通过全面细致的内容和代码示例,带领读者更加全方位地认识C++语言。全书分为10章,由浅入深地介绍了C++的各项特性,包括C++语法、数据类型、指针、函数、类、面向对象特性、标准库容器、字符串、诊断和调试等。本书涵盖了C++11规范及相关的C++11标准库,是全面学习C++编程的合适之选。 本书适合C++零基础读者,但是希望读者有一些编程经验。通过书中丰富、典型的代码示例,读者将快速把握C++的特性和编程技巧。

作者简介:
Richard Grimes有25年C++编程经验,曾经致力于汽车制造业远程设备的金融分析和科学控制等多个项目。他曾经在70多场微软技术(其中包含C++和C#)的国际会议上发布重要讲话,共编写了8本书,在编程期刊上发表了150多篇文章,主讲了5期Microsoft培训课程。Richard曾经连续10年(1998-2007)获得微软MVP认证。他对微软.net框架和C++的深刻理解,以及他对新技术的坦率评估在业内享有盛誉。

目录:
第 1章 初识C++ 1
1.1 本章的主要内容 1
1.2 C++是什么 1
1.3 安装Visual C++ 2
1.3.1 安装配置 2
1.3.2 下载安装文件 2
1.3.3 安装Visual Studio 3
1.3.4 注册Microsoft账号 5
1.4 C++项目结构简介 6
1.4.1 编译器 6
1.4.2 链接代码 7
1.4.3 源文件 8
1.4.4 预处理器和标识符 14
1.4.5 依赖项 18
1.5 编写一个简单的项目程序 22
1.5.1 项目结构 22
1.5.2 创建预编译头文件 22
1.5.3 创建主文件 23
1.5.4 输入和输出流 24
1.5.5 time函数 25
1.5.6 构建可执行文件 26
1.5.7 测试代码 27
1.5.8 修改项目 27
1.6 小结 27
第 2章 语言特性简介 28
2.1 编写C++代码 28
2.1.1 空格 28
2.1.2 格式化代码 29
2.1.3 编写语句 30
2.1.4 类型和变量 32
2.1.5 常量和文字 33
2.1.6 命名空间 37
2.1.7 C++的变量作用域 40
2.2 运算符 42
2.3 执行流控制 49
2.3.1 条件语句 49
2.3.2 选择 51
2.3.3 循环 53
2.3.4 跳转 57
2.4 C++语言特性应用 58
2.5 小结 62
第3章 C++类型探秘 63
3.1 内置类型 63
3.1.1 整数类型 64
3.1.2 浮点类型 68
3.1.3 字符和字符串 69
3.1.4 布尔类型 75
3.1.5 void 75
3.1.6 初始化器 76
3.1.7 默认值 77
3.1.8 无类型的变量声明 78
3.1.9 存储类 80
3.1.10 类型别名 81
3.1.11 记录类型中的聚合数据 82
3.1.12 访问运行时类型信息 88
3.1.13 类型取值范围 89
3.2 类型之间的转换 89
3.2.1 类型转换 89
3.2.2 转型 91
3.3 C++类型应用 94
3.4 小结 101
第4章 内存、数组和指针 102
4.1 C++中的使用内存 102
4.1.1 C++指针语法 102
4.1.2 空指针 104
4.1.3 内存类型 104
4.1.4 指针算术 106
4.2 数组 107
4.2.1 函数参数 108
4.2.2 多维数组 109
4.2.3 将多维数组传递给
函数 110
4.2.4 字符数组 111
4.3 在C++中使用指针 113
4.3.1 访问越界 113
4.3.2 指针内存释放 113
4.3.3 指针转型 114
4.4 在代码中分配内存 115
4.4.1 分配单个对象 116
4.4.2 分配对象数组 116
4.4.3 处理内存分配异常 117
4.4.4 new运算符的其他版本 117
4.4.5 内存的生命周期 118
4.4.6 Windows SDK和指针 118
4.5 内存与C++标准库 120
4.6 引用 122
4.6.1 常量引用 123
4.6.2 返回引用 123
4.6.3 临时引用 124
4.6.4 右值引用 125
4.6.5 for循环区间和引用 127
4.7 指针实战 128
4.7.1 创建项目 129
4.7.2 将task对象添加到列表 130
4.7.3 删除任务列表 131
4.7.4 遍历任务列表 132
4.7.5 插入元素 133
4.8 小结 135
第5章 函数 136
5.1 定义C++函数 136
5.1.1 声明和定义函数 136
5.1.2 声明链接 137
5.1.3 内联化 137
5.1.4 确定返回类型 138
5.1.5 函数命名 138
5.1.6 函数参数 138
5.1.7 声明异常 139
5.1.8 函数体 139
5.2 函数参数 139
5.2.1 传递初始化器列表 140
5.2.2 默认参数 140
5.2.3 可变参数 141
5.3 函数特性 144
5.3.1 堆栈调用 144
5.3.2 声明调用规范 144
5.3.3 递归 145
5.3.4 函数重载 146
5.3.5 函数和作用域 146
5.3.6 删除函数 146
5.3.7 值传递和引用传递 147
5.4 函数设计 148
5.4.1 前置条件和后置条件 148
5.4.2 不变量 149
5.5 函数指针 150
5.5.1 留意括号 150
5.5.2 声明函数指针 150
5.5.3 函数指针用法 151
5.6 模板函数 152
5.6.1 定义模板 153
5.6.2 模板参数值 155
5.6.3 专一化模板 157
5.6.4 可变参数模板 157
5.7 运算符重载 159
5.7.1 函数对象 161
5.7.2 lambda表达式简介 163
5.8 函数在C++中的应用 164
5.9 小结 169
第6章 类 170
6.1 编写类 170
6.1.1 重新审视结构体 170
6.1.2 定义类 171
6.1.3 定义类的行为 171
6.1.4 创建对象 174
6.1.5 声明静态成员 181
6.1.6 嵌套类 184
6.1.7 访问常量对象 184
6.2 对象和指针 185
6.2.1 指向对象成员的指针 185
6.2.2 运算符重载 186
6.2.3 定义函数类 188
6.2.4 定义转换运算符 191
6.2.5 资源管理 192
6.2.6 编写包装器类 192
6.2.7 智能指针 193
6.3 模板 198
6.4 类的应用 200
6.5 小结 203
第7章 面向对象编程简介 204
7.1 继承和组合 204
7.1.1 从一个类继承 204
7.1.2 方法重载和名称隐藏 206
7.1.3 指针和引用 208
7.1.4 访问层级 209
7.1.5 继承访问层级 211
7.1.6 多继承 211
7.2 多态简介 214
7.2.1 虚方法 215
7.2.2 虚方法表 217
7.2.3 多继承和虚方法表 218
7.2.4 虚方法、构造函数和析构函数 219
7.2.5 容器和虚方法 219
7.2.6 友元和继承 220
7.2.7 重载和关键字final 221
7.2.8 虚拟继承 222
7.2.9 抽象类 222
7.2.10 获取类型信息 224
7.2.11 智能指针和虚方法 226
7.2.12 接口 228
7.2.13 类之间的关系 230
7.2.14 mixin类 231
7.3 多态应用 233
7.4 小结 244
第8章 标准库容器 245
8.1 pair和tuple 245
8.2 容器 247
8.2.1 顺序容器 248
8.2.2 关联容器 252
8.2.3 专用容器 255
8.2.4 迭代器 256
8.3 算法 261
8.3.1 元素迭代 261
8.3.2 获取信息 263
8.3.3 容器比较 263
8.3.4 修改元素 264
8.3.5 查找元素 266
8.3.6 元素排序 267
8.4 数值库 268
8.4.1 编译期运算 268
8.4.2 复数 270
8.5 标准库应用 271
8.6 小结 276
第9章 字符串 277
9.1 把字符串类当作容器 277
9.1.1 获取字符串信息 278
9.1.2 修改字符串 278
9.1.3 搜索字符串 279
9.2 国际化 281
9.3 字符串和数字 284
9.3.1 将字符串转换成数字 284
9.3.2 将数字转换成字符串 284
9.4 stream类 285
9.4.1 输出浮点数 285
9.4.2 输出整数 287
9.4.3 输出时间和货币 288
9.4.4 使用stream将数字转换为字符串 289
9.4.5 使用stream从字符串读取数字 290
9.5 正则表达式 292
9.5.1 正则表达式定义 292
9.5.2 标准库类 294
9.6 字符串应用 298
9.6.1 创建项目 299
9.6.2 处理标题子元素 303
9.7 小结 305
第 10章 诊断和调试 306
10.1 准备工作 306
10.1.1 不变性和条件编译 306
10.1.2 条件编译 307
10.1.3 pragma指令 308
10.1.4 添加通知消息 309
10.1.5 调试程序的编译器开关 311
10.1.6 预处理器标识符 312
10.1.7 生成诊断信息 314
10.1.8 断言 318
10.2 应用程序终止 319
10.3 异常值 320
10.3.1 获取描述信息 321
10.3.2 消息编译器 322
10.4 C++的异常 323
10.4.1 异常规范 323
10.4.2 C++异常语法 323
10.4.3 标准exception类 325
10.4.4 根据类型捕获异常 326
10.4.5 函数中的try语句块 328
10.4.6 系统异常 329
10.4.7 异常嵌套 330
10.4.8 结构化异常处理 331
10.4.9 编译器异常开关 334
10.4.10 C++和SEH混合异常处理 334
10.4.11 编写异常安全的类 336
10.5 小结 337