关于本书的内容有任何问题,请联系 张斌
第1章 引论 1 1.1 C++程序概貌 1 1.1.1 编写第一个C++程序 2 1.1.2 程序释义 3 1.2 面向对象的基本概念 5 1.2.1 对象 5 1.2.2 面向对象方法的核心概念 8 1.2.3 面向对象分析、设计和程序设计 8 第2章 C++:一个更好的C 10 2.1 基础类型 10 2.1.1 增强的字面常量 10 2.1.2 bool类型 12 2.1.3 强类型枚举 12 2.2 地址类型 14 2.2.1 指针类型 14 2.2.2 引用类型 16 2.3 类型自动推导 19 2.3.1 decltype关键字 19 2.3.2 auto关键字 20 2.4 运算符和表达式 20 2.4.1 C++特有的运算符 20 2.4.2 lambda表达式 23 2.5 控制结构和语句 25 2.6 异常处理及语句 26 2.6.1 异常以及异常抛出 26 2.6.2 try…catch语句 26 2.7 函数 30 2.7.1 函数的类型 30 2.7.2 函数的参数 30 2.7.3 函数的返回值 33 2.7.4 函数重载 37 2.7.5 回调函数 38 2.8 复杂类型声明的简化 40 2.9 名字空间 41 2.9.1 名字空间的定义 42 2.9.2 using声明和using指令 42 2.9.3 嵌套的名字空间 43 第3章 类:面向对象的基石 44 3.1 案例—链表的实现 44 3.1.1 案例及其实现 44 3.1.2 案例问题分析 49 3.2 类 49 3.2.1 定义类类型和类对象 49 3.2.2 访问控制和数据封装 56 3.2.3 类的静态成员 60 3.2.4 struct和union 62 3.2.5 聚集与组合 62 3.3 类对象的构造、初始化和析构 63 3.3.1 类的构造函数 64 3.3.2 构造函数重载 67 3.3.3 统一初始化 69 3.3.4 析构函数 70 3.3.5 默认和被删除的成员函数 71 3.4 案例的完整解决方案 72 3.5 面向对象方法的应用 74 3.5.1 面向对象分析 75 3.5.2 面向对象设计 76 3.5.3 编码实现 77 第4章 类的高级特性 80 4.1 案例—链表类的复制问题 80 4.1.1 案例及其实现 80 4.1.2 案例问题分析 84 4.2 复制控制 85 4.2.1 复制 85 4.2.2 赋值 86 4.2.3 浅复制和深复制 87 4.2.4 转移对象和转移语义 90 4.2.5 禁止复制 94 4.3 指向类成员的指针 95 4.4 友元 96 4.4.1 友元函数和友元类 96 4.4.2 友元关系的特性 98 4.5 类的const成员和mutable成员 99 4.5.1 类的const成员 99 4.5.2 类的mutable成员 100 4.6 类中的类型名 100 4.6.1 类中的类类型 100 4.6.2 类中的枚举类型 101 4.6.3 类中的typedef和using 102 4.6.4 typename关键字 102 4.7 案例的完整解决方案 102 第5章 运算符重载 106 5.1 案例分析—complex类及 其常规运算 106 5.1.1 案例及其实现 106 5.1.2 案例问题分析 107 5.2 运算符函数重载 108 5.2.1 重载运算符函数的考虑因素 108 5.2.2 运算符函数重载的一般性规则 112 5.3 常用运算符的重载 114 5.3.1 重载赋值运算符 114 5.3.2 重载算术运算符 115 5.3.3 重载关系运算符 119 5.3.4 重载流式输入运算符>>和 输出<<运算符 119 5.4 类型转换 121 5.4.1 标量类型向类类型转换 121 5.4.2 类类型向标量类型转换 122 5.4.3 类类型向类类型转换 123 5.5 重载特殊运算符 124 5.5.1 下标运算符[] 125 5.5.2 指针运算符*和成员选择 运算符?> 129 5.5.3 函数调用运算符() 132 第6章 继承 135 6.1 案例—四边形家族的类描述 135 6.1.1 案例及其实现 135 6.1.2 案例问题分析 137 6.2 继承和派生 139 6.2.1 定义基类和派生类 139 6.2.2 继承的实现机制 141 6.2.3 基类子对象的初始化 142 6.2.4 基类成员的继承 144 6.2.5 重新定义基类成员 147 6.3 赋值兼容原则 148 6.3.1 派生类和基类对象间的赋值 148 6.3.2 引用作用于派生类和基类对象 148 6.3.3 指针作用于派生类和基类对象 149 6.4 多继承 150 6.4.1 多继承的语法 150 6.4.2 虚继承和虚基类 151 6.4.3 多继承面临的其他问题 152 6.5 继承的前提:正确的分类 153 6.5.1 案例—基于角色的分类 154 6.5.2 案例存在的问题 155 6.5.3 案例的改进方案 156 第7章 多态 159 7.1 案例分析—赋值兼容原则的 进一步应用 159 7.1.1 案例及其实现 159 7.1.2 案例问题分析 160 7.2 多态的概念 161 7.2.1 静态多态性 161 7.2.2 动态多态性 162 7.3 虚函数:实现多态的关键 162 7.3.1 虚函数的声明和覆盖 162 7.3.2 虚函数的实现原理 167 7.3.3 虚析构函数 169 7.4 纯虚函数和抽象类 170 7.4.1 纯虚函数 170 7.4.2 抽象类 171 第8章 模板 174 8.1 案例分析—类型带来的困扰 174 8.1.1 案例的设计与实现 174 8.1.2 案例问题分析 178 8.2 变量模板 179 8.2.1 定义和使用变量模板 179 8.2.2 变量模板的特化 180 8.3 函数模板 181 8.3.1 定义和使用函数模板 181 8.3.2 函数模板的重载和特化 183 8.3.3 完美转发 184 8.3.4 折叠表达式 185 8.4 类模板 187 8.4.1 定义和使用类模板 188 8.4.2 类模板的特化 191 8.4.3 类模板的友元 191 8.4.4 类模板的继承和派生 192 8.4.5 类模板的变长模板参数 192 8.4.6 类模板性能的改进 194 8.5 模板的别名 196 8.6 traits技术 198 8.6.1 特性萃取 198 8.6.2 类型萃取 200 8.6.3 随之而来的问题 202 8.7 模板元编程初探 204 8.7.1 模板递归 204 8.7.2 奇异递归模板模式 205 第9章 容器、迭代器和 泛型算法 207 9.1 案例分析—链表类的遍历 207 9.1.1 案例的设计与实现 208 9.1.2 案例问题分析 209 9.2 容器的迭代器 210 9.2.1 迭代器的结构设计 210 9.2.2 迭代器的实现 211 9.3 泛型算法 217 9.3.1 只用到迭代器的泛型算法 217 9.3.2 带更多参数的泛型算法 218 9.3.3 只读算法和写算法 220 9.3.4 泛型算法返回值类型的考虑 221 9.3.5 iterator traits 222 9.4 C++标准模板库STL 224 9.4.1 C++的标准容器类 224 9.4.2 C++的标准泛型算法和 可调用对象 224 9.4.3 C++的标准iterator库 225 第10章 多线程 226 10.1 案例分析—顺序执行的局限 226 10.1.1 案例的设计与实现 226 10.1.2 案例问题分析 226 10.2 关键概念 227 10.2.1 异步 227 10.2.2 进程和线程 227 10.2.3 共享和互斥 228 10.2.4 锁和死锁 228 10.3 C++的多线程库 229 10.3.1 头文件<thread> 229 10.3.2 头文件<mutex> 232 10.3.3 头文件<condition_variable> 234 10.3.4 头文件<future> 236 10.4 多线程编程示例 239 10.4.1 系统简要分析 239 10.4.2 系统设计 240 10.4.3 系统实现 241 第11章 面向对象设计的原则 244 11.1 单一职责原则 244 11.2 开闭原则 247 11.3 聚集与组合复用原则 248 11.4 里氏替换原则 248 11.5 依赖倒置原则 249 11.6 接口隔离原则 251 11.7 最少知识原则 252 第12章 C++程序设计案例 257 12.1 案例描述 257 12.2 系统分析 258 12.2.1 MVC设计模式 简介 258 12.2.2 系统的用例模型 259 12.3 系统设计 259 12.3.1 系统体系结构设计 259 12.3.2 对象设计 260 12.3.3 用户界面设计 263 12.4 系统实现 263 附录A C++关键字 274 附录B 常用运算符的优先级和 结合性 275 附录C 使用不同的C++编译器 276 C.1 使用GNU GCC for Linux 276 C.2 使用MinGW 277 C.3 使用Visual Studio 2017(VS 2017) 277 C.4 使用Clang 278 参考文献 280
本书为Java基础入门教材,适合初学者使用。全书共13章,第1~2章主要讲解Java技术的一些基础知识,内容包...
本书以PyCharm为主要开发工具,采用理论与实训案例相结合的编写方式,系统地讲解Python的相关知识。本书...
本书根据高等院校应用技术型人才培养的目标编写,适合案例学习和模块化教学相结合的教学方式。本书以真实企业开发案例...
Java是互联网时代深受开发者欢迎的编程语言,广泛应用于开发移动应用、Web应用、分布式应用、游戏、系统服务和...
本书是为将C语言作为入门语言的程序设计课程的初学者所编写的,以培养读者程序设计的基本能力为基本目标。 本书全...
我要评论