《每天10分钟轻松掌握C++(第2版)》围绕一个实用程序的开发展开,讲解了C++各方面的特性,包括函数、异常处理、堆与栈的区别、结构体、类、继承、多态等基本概念,还包括模板、性能优化等比较深入的知识。与其他只讲C++语言本身的图书不同,《每天10分钟轻松掌握C++(第2版)》更注重语言特性的应用,并在应用的基础上讲解了迭代的软件开发过程,涉及软件的设计、开发、调试、测试以及重构等若干方面。《每天10分钟轻松掌握C++(第2版)》适合各层次 C++程序员使用。
目录
- 第1章 准备工作 1
- 1.1 目标 1
- 1.2 C++语言 1
- 1.3 准备编程 2
- 1.4 C++、ANSI C++、Windows等问题 2
- 1.5 编译器和编辑器 3
- 1.6 开发周期 4
- 1.7 改进程序 5
- 1.8 一个简单的程序 5
- 1.9 程序的组成 5
- 1.10 编译期错误 6
- 1.11 小结 7
- 第2章 输出到控制台——标准输出 8
- 2.1 改进空程序 8
- 2.2 理解#include 9
- 2.3 命名空间 9
- 2.4 注释 10
- 2.5 空白行 10
- 2.6 函数 11
- 2.7 逐字理解cout语句 11
- 2.8 小结 12
- 第3章 计算 13
- 3.1 执行计算和显示结果 13
- 3.2 括号嵌套 14
- 3.3 使用输入流 15
- 3.4 使用int变量和常量 17
- 3.5 变量的类型和有效变量名 18
- 3.6 小结 20
- 第4章 数字输入 21
- 4.1 数字输入 21
- 4.2 哪里出错了 24
- 4.3 小结 26
- 第5章 if语句和判断条件 27
- 5.1 处理失败的输入流 27
- 5.2 小结 31
- 第6章 异常处理 32
- 6.1 异常处理——更好的方式 32
- 6.2 为什么使用异常 34
- 6.3 小结 34
- 第7章 函数 35
- 7.1 什么是函数 35
- 7.2 定义函数 36
- 7.3 把示例程序分解成多个函数 37
- 7.4 重构 40
- 7.5 把函数的代码放在哪里 41
- 7.6 全局变量 42
- 7.7 测试 43
- 7.8 小结 43
- 第8章 把代码分解成模块 44
- 8.1 什么是模块 44
- 8.2 为什么使用模块 44
- 8.3 使用库改变名字 47
- 8.4 调用函数 48
- 8.5 分离编译 50
- 8.6 测试 50
- 8.7 小结 50
- 第9章 do/while循环 51
- 9.1 当前进度 51
- 9.2 执行多次 51
- 9.3 至少执行一次 51
- 9.4 一次都不执行或执行多次 55
- 9.5 小结 56
- 第10章 循环嵌套和复杂布尔表达式 57
- 10.1 循环嵌套 57
- 10.2 关系运算符 59
- 10.3 使用bool变量化简 61
- 10.4 小结 62
- 第11章 switch语句、静态变量和runtime_error 63
- 11.1 switch语句 63
- 11.2 扩展计算器 64
- 11.3 处理新的异常 67
- 11.4 小结 68
- 第12章 数组、循环及递增和递减运算符 69
- 12.1 使用数组创建计算器磁带 69
- 12.2 磁带 69
- 12.3 for循环 71
- 12.4 数组访问越界 72
- 12.5 递增和递减 72
- 12.6 累加器中的计算器磁带 73
- 12.7 小结 74
- 第13章 存储:堆、栈和指针 75
- 13.1 堆与栈 75
- 13.2 指针、引用和数组 77
- 13.3 使用指针存在危险 84
- 13.4 从堆中删除指针 84
- 13.5 删除数组 85
- 13.6 小结 85
- 第14章 测试 86
- 14.1 测试堆分配内存为什么很重要 86
- 14.2 使用“微型语言”让计算器更通用 86
- 14.3 不用调试器调试 94
- 14.4 小结 96
- 第15章 结构和类型 97
- 15.1 组织结构 97
- 15.2 声明枚举类型 98
- 15.3 声明结构体类型 101
- 15.4 栈上的结构体 101
- 15.5 堆上的结构体 102
- 15.6 用结构体单向链表实现磁带 103
- 15.7 函数指针和回调 105
- 15.8 小结 109
- 第16章 文件I/O 110
- 16.1 保存程序的运行状态 110
- 16.2 恢复磁带 114
- 16.3 重新播放磁带恢复状态 114
- 16.4 小结 117
- 第17章 类:带函数的结构体 118
- 17.1 把类看做迷你程序 118
- 17.2 类与实例 118
- 17.3 构造函数和析构函数 122
- 17.4 复制构造函数以及何时使用它 126
- 17.5 放宽类中“使用前声明” 127
- 17.6 小结 127
- 第18章 用类重构计算器 128
- 18.1 把函数移入类中 128
- 18.2 小结 131
- 第19章 用类实现计算器 132
- 19.1 类的标记 132
- 19.2 aRequest的私有成员和公有成员 134
- 19.3 初始化 134
- 19.4 内部状态 136
- 19.5 命名 138
- 19.6 把函数的内容移入成员函数 139
- 19.7 将对象作为回调结构体 144
- 19.8 对象所有权 144
- 19.9 小结 145
- 第20章 用类实现计算器的 其他功能 146
- 20.1 使用C++标准库 146
- 20.2 对象中的用户接口 150
- 20.3 main.cpp 155
- 20.4 小结 156
- 第21章 函数和运算符重载 157
- 21.1 在类中声明重载成员函数 157
- 21.2 重载构造函数 160
- 21.3 重载运算符意味着什么 161
- 21.4 运算符重载存在危险 161
- 21.5 重载赋值运算符和复制构造函数 165
- 21.6 小结 166
- 第22章 继承 167
- 22.1 继承的声明 167
- 22.2 引用对象的类和父类 171
- 22.3 重写函数 174
- 22.4 保护访问 175
- 22.5 virtual是什么 176
- 22.6 虚构造函数和析构函数 178
- 22.7 虚成员函数 178
- 22.8 调用父类 179
- 22.9 小结 179
- 第23章 用继承测试对象 180
- 23.1 编写测试用具 180
- 23.2 用已知的用例测试类 180
- 23.3 回归测试 182
- 23.4 小结 183
- 第24章 抽象类、多重继承和静态成员 184
- 24.1 创建接口 184
- 24.2 多重继承 191
- 24.3 类中的静态成员变量和静态函数 193
- 24.4 小结 197
- 第25章 模板 198
- 25.1 模板的优点和缺点 198
- 25.2 模板的声明和使用 198
- 25.3 小结 210
- 第26章 性能优化 211
- 26.1 运行更快、体积更小 211
- 26.2 内联 211
- 26.3 递增和递减 213
- 26.4 模板与普通类 213
- 26.5 测量代码运行时间 214
- 26.6 程序和数据结构的大小 215
- 26.7 小结 215
- 第27章 总结 216
- 27.1 如何增强计算器 216
- 27.2 学到的内容 217
- 附录A 运算符 220
- 附录B 运算符优先级 226
- 附录C 重要的C++关键字 228
-
索引 230