21天学通C++

当前位置:首页 > 计算机网络 > 程序设计 > 21天学通C++

出版社:人民邮电出版社
出版日期:2009-8
ISBN:9787115207937
作者:[美] Jesse Liberty,[美] Siddhartha Rao,[美] Bradley Jones
页数:490页

作者简介

《21天学通C++(第6版)》通过大量短小精悍的程序详细而全面地阐述了C++的基本概念和技术,包括管理输入/输出、循环和数组、面向对象编程、模板、使用标准模板库以及创建C++应用程序等。这些内容被组织成结构合理、联系紧密的章节,每章都可在1小时内阅读完毕;每章都提供了示例程序清单,并辅以示例输出和代码分析,以阐述该章介绍的主题。为加深读者对所学内容的理解,每章末尾都提供了常见问题及其答案以及练习和测验。读者可对照附录D提供的测验和练习答案,了解自己对所学内容的掌握程度。

书籍目录

第一部分 基础知识
第1章 绪论 2
1.1 C++简史 2
1.1.1 解释器和编译器 3
1.1.2 不断变化的需求和平台 3
1.1.3 过程化编程、结构化编程和面向对象编程 4
1.1.4 面向对象编程(OOP) 4
1.1.5 C++和面向对象编程 4
1.2 C++的发展历程 5
1.3 应该先学习C语言吗 5
1.4 微软的C++托管扩展 6
1.5 ANSI标准 6
1.6 编程准备 6
1.7 开发环境 7
1.8 创建程序的步骤 7
1.8.1 用编译器生成对象文件 7
1.8.2 用链接器生成可执行文件 7
1.9 程序开发周期 8
1.10 HELLO.cpp:第一个C++程序 9
1.11 编译器初步 10
1.12 编译错误 11
1.13 总结 11
1.14 问与答 11
1.15 作业 12
1.15.1 测验 12
1.15.2 练习 12
第2章 C++程序的组成部分 13
2.1 一个简单程序 13
2.2 cout简介 14
2.3 使用标准名称空间 16
2.4 对程序进行注释 17
2.4.1 注释的类型 17
2.4.2 使用注释 18
2.4.3 有关注释的警告 18
2.5 函数 18
2.5.1 使用函数 19
2.5.2 方法和函数 21
2.6 总结 21
2.7 问与答 21
2.8 作业 21
2.8.1 测验 21
2.8.2 练习 21
第3章 使用变量和常量 23
3.1 什么是变量 23
3.1.1 将数据存储在内存中 23
3.1.2 预留内存 24
3.1.3 整型变量的大小 24
3.1.4 基本变量类型 24
3.2 定义变量 25
3.2.1 区分大小写 26
3.2.2 命名规则 26
3.2.3 关键字 27
3.3 确定变量类型占用的内存量 27
3.4 一次创建多个变量 28
3.5 给变量赋值 28
3.6 使用typedef创建别名 29
3.7 何时使用short和long 30
3.7.1 unsigned整型变量的回绕 31
3.7.2 signed整型变量的回绕 31
3.8 使用字符 32
3.8.1 字符和数字 32
3.8.2 特殊打印字符 33
3.9 常量 34
3.9.1 字面常量 34
3.9.2 符号常量 34
3.10 枚举常量 35
3.11 总结 36
3.12 问与答 37
3.13 作业 37
3.13.1 测验 37
3.13.2 练习 38
第4章 管理数组和字符串 39
4.1 什么是数组 39
4.1.1 访问数组元素 39
4.1.2 在数组末尾后写入数据 40
4.1.3 护栏柱错误 42
4.1.4 初始化数组 42
4.1.5 声明数组 43
4.2 使用多维数组 44
4.2.1 声明多维数组 44
4.2.2 初始化多维数组 44
4.3 字符数组和字符串 46
4.4 使用方法strcpy()和strncpy() 48
4.5 string类 49
4.6 总结 50
4.7 问与答 51
4.8 作业 51
4.8.1 测验 51
4.8.2 练习 51
第5章 使用表达式、语句和运算符 53
5.1 语句简介 53
5.1.1 使用空白 53
5.1.2 语句块和复合语句 54
5.2 表达式 54
5.3 使用运算符 55
5.3.1 赋值运算符 55
5.3.2 数学运算符 55
5.3.3 整数除法和求模 56
5.4 结合使用赋值运算符与数学运算符 57
5.5 递增和递减 57
5.6 理解运算符优先级 59
5.7 括号的嵌套 59
5.8 真值的本质 60
5.9 if语句 61
5.9.1 缩进风格 63
5.9.2 else语句 63
5.9.3 高级if语句 65
5.10 在嵌套if语句中使用大括号 66
5.11 使用逻辑运算符 68
5.11.1 逻辑AND运算符 68
5.11.2 逻辑OR运算符 68
5.11.3 逻辑NOT运算符 68
5.12 简化求值 68
5.13 关系运算符的优先级 69
5.14 再谈真和假 69
5.15 条件运算符(三目运算符) 70
5.16 总结 71
5.17 问与答 71
5.18 作业 71
5.18.1 测验 71
5.18.2 练习 72
第6章 使用函数组织代码 73
6.1 什么是函数 73
6.2 返回值、参数和实参 74
6.3 声明和定义函数 74
6.3.1 函数原型 74
6.3.2 定义函数 75
6.4 函数的执行 76
6.5 确定变量的作用域 77
6.5.1 局部变量 77
6.5.2 作用域为语句块的局部变量 78
6.6 参数是局部变量 79
6.6.1 全局变量 80
6.6.2 有关全局变量的注意事项 81
6.7 创建函数语句时的考虑因素 81
6.8 再谈函数实参 81
6.9 再谈返回值 82
6.10 默认参数 83
6.11 重载函数 85
6.12 函数特有的主题 87
6.12.1 内联函数 87
6.12.2 递归 89
6.13 函数的工作原理 92
6.13.1 抽象层次 92
6.13.2 划分RAM 92
6.13.3 堆栈和函数 93
6.14 总结 94
6.15 问与答 94
6.16 作业 95
6.16.1 测验 95
6.16.2 练习 95
第7章 控制程序流程 97
7.1 循环 97
7.1.1 循环的鼻祖:goto 97
7.1.2 为何避免使用goto语句 98
7.2 使用while循环 98
7.2.1 更复杂的while语句 99
7.2.2 continue和break简介 100
7.2.3 while(true)循环 102
7.3 实现do...while循环 103
7.4 使用do...while 103
7.5 for循环 105
7.5.1 高级for循环 106
7.5.2 空for循环 108
7.5.3 循环嵌套 109
7.5.4 for循环中声明的变量的作用域 110
7.6 循环小结 111
7.7 使用switch语句控制程序流程 112
7.8 总结 116
7.9 问与答 117
7.10 作业 117
7.10.1 测验 117
7.10.2 练习 117
第8章 阐述指针 119
8.1 什么是指针 119
8.1.1 内存简介 119
8.1.2 获取变量的内存地址 120
8.1.3 将变量的地址存储到指针中 120
8.1.4 指针名 121
8.1.5 获取指针指向的变量的值 121
8.1.6 使用间接运算符解除引用 122
8.1.7 指针、地址和变量 122
8.1.8 使用指针来操纵数据 123
8.1.9 查看地址 124
8.1.10 指针和数组名 125
8.1.11 数组指针和指针数组 126
8.2 为什么使用指针 127
8.3 栈和自由存储区(堆) 127
8.3.1 使用关键字new分配内存 128
8.3.2 使用关键字delete归还内存 128
8.4 再谈内存泄漏 130
8.5 在自由存储区上创建对象 130
8.6 删除自由存储区中的对象 130
8.7 迷途指针 131
8.8 使用const指针 133
8.9 总结 134
8.10 问与答 134
8.11 作业 134
8.11.1 测验 134
8.11.2 练习 135
第9章 使用引用 136
9.1 什么是引用 136
9.2 将地址运算符用于引用 137
9.3 空指针和空引用 139
9.4 按引用传递函数参数 139
9.4.1 使用指针让swap()管用 140
9.4.2 使用引用来实现swap() 141
9.5 返回多个值 142
9.6 按引用传递以提高效率 145
9.6.1 传递const指针 147
9.6.2 用引用代替指针 148
9.7 何时使用引用和指针 150
9.8 混合使用引用和指针 150
9.9 返回指向不在作用域中的对象的引用 151
9.10 总结 153
9.11 问与答 153
9.12 作业 153
9.12.1 测验 154
9.12.2 练习 154
第二部分 面向对象编程和C++基础
第10章 类和对象 156
10.1 C++是面向对象的吗 156
10.2 创建新类型 157
10.3 类和成员简介 157
10.3.1 声明类 158
10.3.2 有关命名规则的说明 158
10.3.3 定义对象 159
10.3.4 类与对象 159
10.4 访问类成员 159
10.4.1 给对象而不是类赋值 159
10.4.2 类不能有没有声明的功能 159
10.5 私有和公有 160
10.6 实现类方法 163
10.7 添加构造函数和析构函数 165
10.7.1 默认构造函数和析构函数 166
10.7.2 使用默认构造函数 166
10.8 const成员函数 168
10.9 将类声明和方法定义放在什么地方 169
10.10 内联实现 169
10.11 将其他类用作成员数据的类 171
10.12 探索结构 174
10.13 总结 174
10.14 问与答 174
10.15 作业 175
10.15.1 测验 175
10.15.2 练习 176
第11章 实现继承 177
11.1 什么是继承 177
11.1.1 继承和派生 177
11.1.2 动物世界 178
11.1.3 派生的语法 178
11.2 私有和保护 180
11.3 构造函数和析构函数的继承性 181
11.4 覆盖基类函数 186
11.4.1 隐藏基类的方法 187
11.4.2 调用基类方法 189
11.5 虚方法 190
11.5.1 虚函数的工作原理 193
11.5.2 通过基类指针访问派生类的方法 193
11.5.3 切除 194
11.5.4 创建虚析构函数 195
11.5.5 虚复制构造函数 195
11.5.6 使用虚方法的代价 198
11.6 私有继承 198
11.6.1 使用私有继承 198
11.6.2 私有继承和聚合(组合) 199
11.7 总结 200
11.8 问与答 201
11.9 作业 201
11.9.1 测验 201
11.9.2 练习 202
第12章 多态 203
12.1 单继承存在的问题 203
12.1.1 提升 205
12.1.2 向下转换 205
12.1.3 将对象添加到链表中 207
12.2 多重继承 207
12.2.1 多重继承对象的组成部分 209
12.2.2 多重继承对象中的构造函数 210
12.2.3 避免歧义 212
12.2.4 从共同基类继承 212
12.2.5 虚继承 215
12.2.6 多重继承存在的问题 217
12.2.7 混合(功能)类 217
12.3 抽象数据类型 218
12.3.1 纯虚函数 220
12.3.2 实现纯虚函数 221
12.3.3 复杂的抽象层次结构 224
12.3.4 哪些类是抽象的 226
12.4 总结 226
12.5 问与答 227
12.6 作业 227
12.6.1 测验 227
12.6.2 练习 228
第13章 运算符类型与运算符重载 229
13.1 C++中的运算符 229
13.2 单目运算符 229
13.2.1 单目运算符的类型 230
13.2.2 单目递增与单目递减运算符 230
13.2.3 解除引用运算符*与成员选择运算符-的编程 232
13.2.4 转换运算符的编程 234
13.3 双目运算符 235
13.3.1 双目运算符的类型 235
13.3.2 双目加与双目减运算符的编程 236
13.3.3 运算符+=与-=的编程 237
13.3.4 重载比较运算符 238
13.3.5 重载运算符、、=和= 241
13.3.6 下标运算符 243
13.4 operator()函数 244
13.5 不能重新定义的运算符 245
13.6 总结 245
13.7 问与答 245
13.8 作业 246
13.8.1 测验 246
13.8.2 练习 246
第14章 类型转换运算符 247
14.1 什么是类型转换 247
14.2 为何需要类型转换 247
14.3 为何有些C++程序员不喜欢C风格类型转换 248
14.4 C++类型转换运算符 248
14.4.1 使用static_cast 248
14.4.2 使用dynamic_cast和运行阶段类型识别 249
14.4.3 使用reinterpret_cast 250
14.4.4 使用const_cast 251
14.5 C++类型转换运算符存在的问题 252
14.6 总结 252
14.7 问与答 252
14.8 作业 253
第15章 宏和模板简介 254
15.1 预处理器与编译器 254
15.2 预处理器指令#define 254
15.3 宏函数 255
15.3.1 为什么要使用括号 255
15.3.2 宏与类型安全问题 256
15.3.3 宏与函数及模板之比较 256
15.3.4 内联函数 256
15.4 模板简介 258
15.4.1 模板声明语法 258
15.4.2 各种类型的模板声明 258
15.4.3 模板类 259
15.4.4 模板的实例化和具体化 259
15.4.5 模板与类型安全 259
15.4.6 使用多个参数声明模板 259
15.4.7 使用默认参数来声明模板 260
15.4.8 一个模板示例 260
15.4.9 在实际C++编程中使用模板 261
15.5 总结 262
15.6 问与答 262
15.7 作业 263
15.7.1 测验 263
15.7.2 练习 263
第三部分 学习标准模板库(STL)
第16章 标准模板库简介 266
16.1 STL容器 266
16.1.1 顺序容器 266
16.1.2 关联容器 266
16.1.3 选择正确的容器 267
16.2 STL迭代器 267
16.3 STL算法 268
16.4 使用迭代器在容器和算法之间交互 268
16.5 总结 270
16.6 问与答 270
16.7 作业 270
第17章 STL string类 271
17.1 为何需要字符串操作类 271
17.2 使用STL string类 272
17.2.1 实例化STL string及复制 272
17.2.2 访问string及其内容 273
17.2.3 字符串连接 274
17.2.4 在string中查找字符或子字符串 275
17.2.5 截短STL string 276
17.2.6 字符串反转 278
17.2.7 字符串的大小写转换 278
17.3 基于模板的STL string实现 279
17.4 总结 279
17.5 问与答 279
17.6 作业 280
17.6.1 测验 280
17.6.2 练习 280
第18章 STL动态数组类 281
18.1 std::vector的特点 281
18.2 典型的vector操作 281
18.2.1 实例化vector 281
18.2.2 在vector中插入元素 282
18.2.3 访问vector中的元素 285
18.2.4 删除vector中的元素 286
18.3 理解size()和capacity() 287
18.4 STL deque 类 288
18.5 总结 290
18.6 问与答 290
18.7 作业 290
18.7.1 测验 291
18.7.2 练习 291
第19章 STL list 292
19.1 std::list的特点 292
19.2 基本的list操作 292
19.2.1 实例化std::list对象 292
19.2.2 在list开头插入元素 293
19.2.3 在list末尾插入元素 293
19.2.4 在list中间插入元素 294
19.2.5 删除list中的元素 296
19.3 对list中元素进行反转和排序 297
19.3.1 反转元素的排列顺序 297
19.3.2 元素排序 298
19.4 总结 305
19.5 问与答 305
19.6 作业 305
19.6.1 测验 305
19.6.2 练习 305
第20章 STL set与multiset 306
20.1 简介 306
20.2 STL set和multiset的基本操作 306
20.2.1 实例化std::set对象 306
20.2.2 在STL set或multiset中插入元素 307
20.2.3 在STL set或multiset中查找元素 308
20.2.4 删除STL set或multiset中的元素 309
20.3 使用STL set和multiset的优缺点 315
20.4 总结 316
20.5 问与答 316
20.6 作业 316
20.6.1 测验 316
20.6.2 练习 316
第21章 STL map和multimap 317
21.1 简介 317
21.2 STL map和multimap的基本操作 317
21.2.1 实例化std::map对象 317
21.2.2 在STL map或multimap中插入元素 318
21.2.3 在STL map或multimap中查找元素 320
21.2.4 删除STL map或multimap中的元素 321
21.3 提供自定义的排序谓词 323
21.4 总结 325
21.5 问与答 325
21.6 作业 326
21.6.1 测验 326
21.6.2 练习 326
第四部分 再谈STL
第22章 理解函数对象 328
22.1 函数对象与谓词的概念 328
22.2 函数对象的典型用途 328
22.2.1 一元函数 328
22.2.2 一元谓词 331
22.2.3 二元函数 332
22.2.4 二元谓词 334
22.3 总结 336
22.4 问与答 336
22.5 作业 336
22.5.1 测验 336
22.5.2 练习 336
第23章 STL算法 337
23.1 什么是STL算法 337
23.2 STL算法的分类 337
23.2.1 非变序算法 337
23.2.2 变序算法 338
23.3 STL算法的应用 339
23.3.1 计算元素个数与查找元素 339
23.3.2 在集合中搜索元素或序列 340
23.3.3 将容器中的元素初始化为指定值 342
23.3.4 用for_each处理范围内的元素 344
23.3.5 使用std::transform对范围进行变换 345
23.3.6 复制和删除操作 347
23.3.7 替换值以及替换满足给定条件的元素 349
23.3.8 排序、在有序集合中搜索以及删除重复元素 350
23.3.9 将范围分区 351
23.3.10 在有序集合中插入元素 353
23.4 总结 354
23.5 问与答 354
23.6 作业 355
23.6.1 测验 355
23.6.2 练习 355
第24章 自适应容器:栈和队列 356
24.1 栈和队列的行为特征 356
24.1.1 栈 356
24.1.2 队列 356
24.2 使用STL stack类 356
24.2.1 实例化stack 357
24.2.2 stack的成员函数 357
24.3 使用STL queue类 359
24.3.1 实例化queue 359
24.3.2 queue的成员函数 359
24.4 使用STL优先级队列 361
24.4.1 实例化priority_queue类 361
24.4.2 priority_queue的成员函数 362
24.5 总结 364
24.6 问与答 364
24.7 作业 364
24.7.1 测验 364
24.7.2 练习 364
第25章 使用STL位标志 365
25.1 bitset类 365
25.2 使用std::bitset及其成员 366
25.2.1 std:bitset的运算符 366
25.2.2 std::bitset的成员方法 366
25.3 vectorbool 368
25.3.1 实例化vectorbool 368
25.3.2 使用vectorbool 369
25.4 总结 370
25.5 问与答 370
25.6 作业 370
25.6.1 测验 370
25.6.2 练习 370
第五部分 高级C++概念
第26章 理解智能指针 372
26.1 什么是智能指针 372
26.1.1 使用常规(原始)指针有何问题 372
26.1.2 智能指针有何帮助 372
26.2 智能指针是如何实现的 373
26.3 智能指针类型 374
26.3.1 深度复制 374
26.3.2 写时复制机制 375
26.3.3 引用计数智能指针 375
26.3.4 引用链接智能指针 376
26.3.5 破坏性复制 376
26.4 使用std::auto_ptr 377
26.5 流行的智能指针库 378
26.6 总结 378
26.7 问与答 379
26.8 作业 379
26.8.1 测试 379
26.8.2 练习 379
第27章 处理流 380
27.1 流概述 380
27.1.1 数据流的封装 380
27.1.2 理解缓冲技术 381
27.2 流和缓冲区 382
27.3 标准I/O对象 382
27.4 重定向标准流 382
27.5 使用cin进行输入 382
27.5.1 输入字符串 384
27.5.2 字符串的问题 384
27.5.3 的返回值 386
27.6 cin的其他成员函数 386
27.6.1 单字符输入 386
27.6.2 从标准输入读取字符串 388
27.6.3 使用cin.ignore() 390
27.6.4 查看和插入字符:peek()和putback() 391
27.7 使用cout进行输出 391
27.7.1 刷新输出 391
27.7.2 执行输出的函数 392
27.7.3 控制符、标记和格式化指令 393
27.8 流和printf()函数之比较 396
27.9 文件输入和输出 398
27.9.1 使用ofstream 398
27.9.2 条件状态 398
27.9.3 打开文件进行输入和输出 398
27.9.4 修改ofstream打开文件时的默认行为 400
27.10 二进制文件和文本文件 401
27.11 命令行处理 403
27.12 总结 405
27.13 问与答 405
27.14 作业 406
27.14.1 测验 406
27.14.2 练习 406
第28章 处理异常 407
28.1 程序中的各种错误 407
28.2 异常的基本思想 408
28.2.1 异常处理的组成部分 409
28.2.2 手工引发异常 411
28.2.3 创建异常类 412
28.3 使用try块和catch块 414
28.4 捕获异常的工作原理 415
28.4.1 使用多条catch语句 415
28.4.2 异常层次结构 417
28.5 异常中的数据及给异常对象命名 419
28.6 异常和模板 424
28.7 没有错误的异常 426
28.8 bug和调试 426
28.8.1 断点 427
28.8.2 监视点 427
28.8.3 查看内存 427
28.8.4 查看汇编代码 427
28.9 总结 427
28.10 问与答 427
28.11 作业 428
28.11.1 测验 428
28.11.2 练习 428
第29章 杂项内容 430
29.1 预处理器和编译器 430
29.2 预编译器指令#define 430
29.2.1 使用#define定义常量 431
29.2.2 将#define用于检测 431
29.2.3 预编译器命令#else 431
29.3 包含和防范多重包含 432
29.4 字符串操纵 433
29.4.1 字符串化 433
29.4.2 拼接 433
29.5 预定义的宏 433
29.6 assert()宏 434
29.6.1 使用assert()进行调试 435
29.6.2 assert()与异常之比较 435
29.6.3 副作用 435
29.6.4 类的不变量 436
29.6.5 打印中间值 439
29.7 位运算 440
29.7.1 “与”运算符 441
29.7.2 “或”运算符 441
29.7.3 “异或”运算符 441
29.7.4 “求反”运算符 441
29.7.5 设置位 441
29.7.6 清除位 441
29.7.7 反转位 442
29.7.8 位字段 442
29.8 编程风格 444
29.8.1 缩进 444
29.8.2 大括号 444
29.8.3 长代码行和函数长度 445
29.8.4 格式化switch语句 445
29.8.5 程序文本 445
29.8.6 标识符命名 446
29.8.7 名称的拼写和大写 446
29.8.8 注释 446
29.8.9 设置访问权限 447
29.8.10 类定义 447
29.8.11 包含文件 447
29.8.12 使用assert() 447
29.8.13 使用const 447
29.9 C++开发工作的下一步 447
29.9.1 从何处获得帮助和建议 448
29.9.2 相关的C++主题:托管C++、C#和微软的.NET 448
29.10 总结 448
29.11 问与答 449
29.12 作业 450
29.12.1 测验 450
29.12.2 练习 450
附录A 二进制和十六进制 451
A.1 其他进制 451
A.2 不同进制之间的转换 452
A.2.1 二进制 452
A.2.2 为什么使用二进制 453
A.2.3 位、字节和半字节 453
A.2.4 什么是KB 453
A.2.5 二进制数 454
A.3 十六进制 454
附录B C++关键字 457
附录C 运算符优先级 458
附录D 答案 459

编辑推荐

  只需每天一小时便可具备开始使用C++进行编程所需的全部技能。通过阅读这本内容全面的教程,读者可快速掌握基本知识并学习更高级的特性和概念:  掌握有关C++和面向对象编程的基本知识;  学习一些C++高级特性;  学习标准模板库以及大多数真实C++应用程序都用到了的容器和算法;  向在公司环境中实现C++的权威人士学习专家级技巧。  自己掌握学习时间和学习步伐:不需要任何编程经验;学习C++以及面向对象设计、编程和分析;编写快速而功能强大的C++程序、编译源代码以及创建可执行文件;了解最新的ANSl标准;使用标准模板库中的算法和容器编写功能丰富而稳定的C++应用程序:使用函数、数组、变量和智能指针完成复杂的编程工作;学习使用继承和多态扩展程序的功能;通过向编程专家学习,掌握C++特性;适用于任何ANSl C++编译器。  “这是一本真正适合C++程序设计初学者和没有任何编程经验的人的优秀图书。”  ——独立评论人

前言

  本书旨在帮助读者学习如何使用c++进行编程。就像人需要慢慢学会走路一样,学习C++编程也需要循序渐进,因此本书每章包含的内容都可以在1小时内阅读完毕。本书通过实际使用c++,帮助读者快速掌握编写实用的c++应用程序涉及的最重要的概念。  通过每天学习1小时,读者将逐步掌握管理输入/输出、循环和数组、面向对象编程、模板、使用标准模板库以及创建c++应用程序等基本知识,所有这些内容都组织成结构合理、易于理解的章节。  每章都提供示例程序清单,并辅以示例输出和代码分析以演示该章介绍的主题。  为加深读者对所学内容的理解,每章末尾都提供了常见问题及其答案以及练习和测验。读者可对照附录D提供的测验和练习答案,了解自己对所学内容的掌握程度。  针对的读者  通过阅读本书来学习C++时,读者不需要有任何编程经验。本书从入门开始,既介绍c++语言,  又讨论使用C++进行编程涉及的概念。本书提供了大量语法实例和详细的代码分析,它们是引导读者完成C++编程之旅的优秀向导。无论读者是刚开始学习编程还是已经有一些编程经验,书中精心安排的内容都将让您的C++学习过程变得既快速又轻松。  本书内容  本书适合初学者阅读,也可供有一定经验的C++程序员从实用角度更深入了解c++时参考。本书包含5部分:  第一部分简要地介绍了c++及其语法,这对于需要学习c++编程基本知识的读者极具参考价值。  第二部分简要地介绍了c++的面向对象编程功能,这些功能让C++不同于其前身c语言。这部分将为实际使用C++及其标准模板库打下坚实的基础。  第三部分深入探讨了如何使用c++编写实用的应用程序,通过使用符合标准的现成结构,可极大地改善应用程序的质量。  第四部分简要地介绍了诸如排序等sTL算法以及其他sTL结构,它们有助于改善应用程序的效率和可靠性。  第五部分详细讨论了c++的一些高级功能。虽然并非编写每个应用程序都涉及这些概念,但了解它们有助于分析错误以及编写出质量更高的代码。

内容概要

Siddhartha Rao,是一位微软Visual C++MVP,还是最活跃的Interllet开发社区之一Codegur的主持人。他是windows编程领域的专家,在架构设计以及使用C++和其他现代编程语言开发驱动程序和应用程序方面拥有丰富的经验。当前,他为德国的一家软件巨人工作,致力于软件管理和软件开发最佳实践。鉴于在3个国家居住和生活过,他认为自己和家人得了旅行狂热症。Siddhartha能说多种语言,闲暇期间他喜欢在全球各地旅行和摄影。
Jesse Liberty编著了大量有关软件开发的图书,其中包括C++和_NET方面的畅销书。他是LibertyAssociates公司的总裁,该公司致力于为客户提供编程、咨询和培训方面的服务。
Bradley Jones是一位微软Visual c++MvP,他身兼网站管理员、经理、编码大师、执行编辑等职,其主要精力放在众多软件开发网站和频道上,其中包括Developel.coM、codeGuru.corn、Devx、VBFoturns、Gamelan以及Jupitermedia的其他网站。

章节摘录

  第一部分 基础知识  第1章 绪论  欢迎使用本书!通过阅读本章,您将迈出成为高级c++程序员的第一步。  在本章中,您将学习:  ?为何c++是软件开发的标准  ?开发c++程序的步骤  ?输入、编译和链接第一个C++程序  1.1 C++简史  自第一代电子计算机诞生后,计算机语言经历了翻天覆地的变化。起初,程序员们使用最原始的计算机指令,即机器语言,这些指令是由0和1组成的字符串。很快,人们就发明了汇编语言,将机器指令映射为人们可以阅读和易于处理的助记符,如ADD和MOV。  然而,随着编写的软件应用程序执行的任务日益复杂(如计算弹道),程序员意识到需要一种能够执行相对复杂的数学指令的语言,这些数学指令可转换为众多的汇编代码(机器语言指令)。FORTRAN应运而生,它是编程领域中第一种针对数值和科学计算进行了优化的高级编程语言,支持子程序、函数和循环等。随后出现了更高级的语言,如BAsic和cOBOL,它们让程序员能够使用类似于单词或句子的源代码(如Let I=100)进行编程。  c语言对B语言做了革命性改进,而B语言是BcPL(Basic combined Programming Language)语言的改进版本。虽然发明c语言旨在帮助程序员使用当时新出现的硬件功能,但它得以流行应主要归功于其可移植性和速度。c语言是一种过程化语音,但随着计算机语言进入面向对象时代,Bjarnestroustmp于1981年发明了C++。它是发展最快、使用最广泛的编程语言之一。除新增了诸如运算符重载和内联函数等功能外,C++还实现了诸如继承(支持多继承)、封装、抽象和多态等面向对象概念。c++还实现并不断改进了模板(泛型类或函数)概念,而诸如Java和C++等较新的语言直到最近才支持这种概念。

图书封面


 21天学通C++下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计1条)

  •     "这种计算机一类的书,本人觉得经常是挑花眼了,一搜索,就出来一大堆,看看都差不多,也不知道哪个好,哪个不行?看得急了烦了,就随便选一本。结果有时快递到了,一翻,发现要不看不懂,要不不是我想学的。挺愁人的。那天又在网上到处查,碰巧 看到一个“猎豹网校”,嘿,全是计算机课程,还每门课都有本书,比如我想学网页设计、想学点C语言了,不知道该挑什么书才合适,在猎豹网校上一搜,出来好多,老师列得挺清楚。试听了一下,就跟坐教室机房里,看着老师在自己面前操作一样,一步一步,可清楚了。这样子学一下,可比自己光买本书,回来学得一个头三个大要轻松容易多啦! "

精彩短评 (总计101条)

  •     我看了好几遍,每遍收获都不一样!!比钱能的好太多了,谭的那本太简单,可以入门用,这本很全面,给的例子也很好。
  •     一本适合初学者拼读的书籍、、、、、
  •     买来自学的,书不错讲得详细。
  •     不错较详细
  •     很好 很适合我 读起来感觉不错
  •     觉得满不错的·建议其他的
  •     对于初学者来说,貌似21天有点难度阿
  •     人民邮电出版社网上找不到示例代码下载。第一个程序不知道写在哪里如何运行。刚起步的菜鸟好晕啊~~~继续翻下去
  •     这本书对于C++初学者绝对是一本经典
  •     第七版 一年前吧
  •     这是我学习C++的入门书,喜欢作者的思路和引人入胜的讲解
  •     一直在看这本书。老外写的计算机确实不错。循序渐进,挺容易看进去。很好,极力推荐。
  •     这本书讲的比较通俗易懂,而且比较全面,是本好书,值得学习。
  •     书还没看,不过质量( ^_^ )不错嘛,满意啦
  •     21天是个噱头,但是总体来还是不错的
  •     适合没有编程经验的人
  •     不得不读的好书!
  •     书的内容不说,自己选的书。这书的质量倒是不错的
  •     还没看,纸张还行,反正比较重视的是里面的内容
  •     好书也易得
  •     买的慎重了
  •     初学者必备的好书!!!
  •     本来一直在看网上下载的视频,后来感觉太吃力了,现在结合起来看,感觉挺好的
  •     第五版明确的分了一天学多少章,21天学完,这版的书没标明每天学多少,与书名不符。。。。。。不过这书还是很好的一本书
  •     讲的很深,例子给的很好,解读超详细,建议购买!
  •     还行吧 马马虎虎
  •     感觉入门看看确实不错,挺适合入门看的,有些对比的例子,但是讲的不深
  •     书不错 封皮问题~~~~~
  •     已经根据本书入门了c++
  •     很好而读书
  •     全都看完了,不错的入门书籍。
    虽然不自己写,里面的内容都忘得差不多了,但是不可否认,书的内容作为入门,还是很全面的。
  •     嗯,速度还蛮快,深圳订的货一天就到了,书也的确是正版的,内容非常详尽,很适合想学C++的朋友,支持!!
  •     书挺好的,适合初学者。
  •     给老公买的,他正在使用,说比第五版进步很多。跟英文原版对比了一下,这一版的中译更加尊重原著的细节性和逻辑性,是一本真正易学并且让人快乐学习的好书。国民素质的整体提高,编纂出让大多数人都能快乐学习的教程是非常重要的任务。目前来看,我国的著作中常常将简单易学的东西编辑得晦涩深奥。
  •     内容全面,详细,易懂!
  •     我就不明白了,为什么旧版的书比新版的销量还好,《零起点学通c++》把《从新手到高手C++全方位学习(附赠DVD光盘1张) (平装)》的错误都改过来,同时在高级篇那里增加了实例,这些实例就是为了凸显流、模板、异常的作用,比如说流的结尾为第19章的代码增加了读取和写入数据到文件的功能,这段代码如果掌握的话,那么流你就掌握了,而模板那一章则用了抢劫犯等比较形象的例子来说明复杂抽象的概念,同时在结尾处用300行代码来重写了一个学生成绩管理系统,这个系统全部用STL来编写,涉及到STL的各个细节,假如这个程序能够掌握?话,那么STL也就掌握了。异常那一章增加了智能指针,形象地表述了智能指针的作用以及智能指针与STL的冲突,结尾则通过一个通讯录来演示异常的作用。
    假如细心看的话,《零起点学通c++》等于对原书的一次重写,该书更加通俗易懂,框架更加合理,表述更加精准,实例也多于《从新手到高手:C++全方位学习》,视频也多于《从新手到高手:C++全方位学习》,我花费了半年多时间来修改此书,又花费半年时间增加了3章视频,同时修改了视频中一些语误,增加了DEV工具以及该工具的介绍,3个集成开发环境VS2005、DEV、VC6.0的比较,增加了专用播放器和VC6.0的补丁,增加了一些难点解析(都是读者来信提出的难点,光盘中通过视频的方式进行回答),这些功夫当然不会白做的。
  •     一口气读了好几章,感觉很过瘾
  •     发货速度很快·
  •     感觉像别的书那样枯燥!
  •     这本书买来给部门同事的,作为C++的入门基础很好!
  •     只能用传世经典之作来形容注明一下,国内人士写的21天系列可能不错但是完全不能和此书比拟。
  •     入手这本书几天了,感觉和国内同类教材比起来讲解要生动很多,更令人明白,总之就一个字,好
  •     实话说,书一般般,不够深入,不过一本旨在快速入门的初学者来说,可以了。
  •     从同学那里看过这本书,非常不错,自己买了一本
  •     书质量很好,讲解也很不错.
  •     书写得很经典,深入浅出,很容易看懂。
  •     书还不错,送货速度很快
  •     非常适合没基础的 学习 , 是入门经典的好书籍
  •     这本书非常适合入门!使我们系主任推荐的。书从最基础的地方讲起,章节安排的也很合理,不过前十章左右都是在复习C语言知识,我是跳过这些直接读后面的。书里的代码示例怎么说呢。。很生动……
  •     有编程基础的话几天内就通读完了. 入门的话某些章节有点难度. 没什么特色.. 估计是读的时候没有了初接触Programming那种兴奋的心情吧.
  •     还行吧 不知道怎么说
  •     书的内容很好,通俗易懂
  •     读了一部分其中的内容,讲的通俗易懂。。适合初学者哦
  •     不错,挺适合初学。
  •     学习C++不错的教科书,内容全面易懂,很适合初学者。
  •     书本质量还不错,快点有点慢了。
  •     给别人买的,说很不错,我也很happy。
  •     在一个专家听说的这本书很有条理的!
  •     C++我有基础,买这本书是为了捡回来,这本书完全是面向初学者零语言基础,直接学C++的,示例代码很多,讲的也很详细,内容也算全面。注意,有基础的人看这个会感觉稍微有些墨迹了,不过耐下心来看收获不少。
  •     粗略看看,书的内容很不错……好书永远值得学……刚开始学习编程,希望能借此得到一个提升……
  •     这本书不适合那此初学者,针对有C基础的人还是一本不错的书,所以要买的朋友要注间了。
  •     虽然题目所言21天学通C++但是对计算机编程有点常识的人都汉子道这简直就是碟中谍么 It is imposseble 只是在21天的时间里 可以对C++ 有个大概的印象而已 而且书中也没有对用多少时间读完多少章节做出一个详细的规划 不过整体来看 还是一本说的蛮好的一本书呢 感觉这个一系列的书都很不错 赞一个
  •     适合初学,挺全
  •     应该会很有用,呵呵...
  •     反正是没有签收
  •     这次当当送货很快
  •     送货基本上是3天内送到的,总体服务还是可以接受的,没什么大问题。
  •     内容浅显易懂,例子简单容易明白,书名虽然庸俗,不过实在不失为一本好书
  •     书挺好的,不过原来有一本旧的。只是为了再买一本给部门别的同事看
  •     总体来说是一部不错的书,语言风格轻松幽默.
    因为是第一次学有关编程的知识,而且由于很多名词解释并不是很到位,所以需要自己在上网查.
    但书本教学的条理还是很清晰易懂的,4分应该是个很公平的分数
  •     我本来在大一的时候学习了c++因为要考计算及二级,基础知识忘了都 这本书帮我很多,谢谢!!
  •     这本书非常适合初学者学习,书的质量还不错,发货速度也比较快
  •     这本书讲的很详细,值得仔细研读。不过想跟各位购买该书的朋友谈谈我学编程的感想。电脑编程根本就是一门从实践中来到实践中去的学科。即便是书上讲的再怎么形象生动、详细透彻,你将书上的内容阅读的再怎么扎实深刻,但是如果你不按照书上讲的去实践操作、演练,你在编程方面仍然不会取得多大的进步。当然,阅读也很能考察和锻炼一个人的能力,但是阅读仅仅只能锻炼一个人的思索、想象和揣摩能力。在你仅仅对着单纯的语言描述,而没有任何实践机会时,你如果想让自己弄明白一件事,就唯有根据以往的实践经验再针对那些单纯的语言描述去想象、去揣摩书本中讲的到底是什么。所以实践操作能力很重要,阅读理解能力也很重要,而将阅读与实践相结合的途径就是靠大脑的想象。人的求知欲是促进人取得伟大进步的最根本动力,而想象力则是用于前进的最基本工具。在学习的道路上遇到任何困难时,都不要有胆怯退缩的心理,要有勇往直前、愈挫愈勇的决心。不要为自己的进步太过于微小而气馁,但也不能有任何的懈怠心理。须知“学海无涯苦作舟”。
  •     正在学习中,希望真能21天就能精通!
  •     为了凑够5个字,可是还要10个字
  •     很好,自学的一本好书!
  •     考二级啦,总体上比二级官方教程写得详细,收获颇丰
  •     正在学习,值得拥有
  •     外国人写的书就是不错
  •     买给员工快速学习C++,挺不错。
  •     本书非常适合初学者,内容很详实,对一些比较抽象的概念会做一些比喻,书中对一些容易弄错或者是不容易注意到的一些问题都特别提出来。书中更为重要的思想是他不断提醒那些习惯是优秀的程序员应该注意的,那些习惯容易出问题,非常经典的一部书。当让书名“21天学通”更多的是一个噱头!
  •     21天学通C++,初一看,好象是入门书一样,可是里面讲得太详细了,语言风趣,而且讲得很透,不象有些国人的书,看起来语焉不详。对于程序运行,各种概念,在每个章节里把握得很好,不会一讲到变量,就一堆变量丢给你去看,而是分类进行分析,我觉得这本书学好了,对C++的整体把握是没有问题的。我一天看了七章,觉得学到好多东西(本人编程经验三年)
  •     最初是在大学的图书馆里看到的这本书,开头按照计划,知识吸收的比较快。随着后面的深入,一天已经不大能够吸收那些知识量。但是这本书讲的很细致,会让你很有信心去学好C++。真的很喜欢这本书,买来当工具书用。
  •     是C++经典学习的书,很难得。
  •     这本书很给力,入门简单,内容层层递进!
  •     此书总体还不错,适合于初学者,知识点很详细,我觉得可以配送代码光盘。并且应标明我们每天应该学多少。
  •     只要肯学,就一定Ok,加油
  •     作为新手入门来说,比Primer好很多
  •     从跟跟着写些代码开始学习是个不错的方法,如果你已经会使用该语言想深入了解其他知识还是换一本吧
  •     这本书真是太好了,是本经典教程
  •     没前几版讲得细
  •     希望是50多万受益中的一个
  •     C++中比较好的教材,虽然21天到底能不能学通咱不追究,书的结构和调理还是很清晰的,推荐
  •     快速学习很不错
  •     我是看完才评论的,我觉得这本书对于基础一般的人还是很适合的,很适合初学者;前半部分写的不错,但是到STL的时候明显就换人写了,基本就是举例子,有点充页面的感觉。还行感觉,初学者建议看一看。没事确实21天能看完哦,有事的话42天就够啦,比较好理解,当然只限于初懂,个人认为C++还是很难滴
  •     入门书啊,流泪。这本书让我对程序的兴趣提高了不少,编程这种东西一定要有兴趣。据说还有一本21天学通神马神马的,跟本书是姊妹书,加上了对C++程序开发软件的介绍,更有实用性,可惜没有找到。
  •     解释详细,适合零基础初学者。
  •     goodverygood!
  •     还没正式看,不过扫了一眼,感觉还不错。。
  •     可惜没得光盘,带C++ 6.0的应用程序。
  •     挺适合初学者,全面,没有C的基础就可以学
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024