网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | C++程序设计 |
分类 | |
作者 | 白忠建编 |
出版社 | 人民邮电出版社 |
下载 | ![]() |
简介 | 作者简介 白忠建, 博士,硕士生导师,电子科技大学软件与信息工程学院副教授,长期从事软件工程、程序设计方面的教学与科研工作。先后担任国家软件人才靠前培训(成都)基地常务副主任、电子科技大学成都学院计算机系主任兼系党总支书记等职务。 目录 章引论1 1.1C++程序概貌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++:一个更好的C10 2.1基础类型10 2.1.1增强的字面常量10 2.1.2bool类型12 2.1.3强类型枚举12 2.2地址类型14 2.2.1指针类型14 2.2.2引用类型16 2.3类型自动推导19 2.3.1decltype关键字19 2.3.2auto关键字20 2.4运算符和表达式20 2.4.1C++特有的运算符20 2.4.2lambda表达式23 2.5控制结构和语句25 2.6异常处理及语句26 2.6.1异常以及异常抛出26 2.6.2try…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.2using声明和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.4struct和union62 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和using102 4.6.4typename关键字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.6traits技术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.5iteratortraits222 9.4C++标准模板库STL224 9.4.1C++的标准容器类224 9.4.2C++的标准泛型算法和可调用对象224 9.4.3C++的标准iterator库225 0章多线程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.3C++的多线程库229 10.3.1头文件229 10.3.2头文件232 10.3.3头文件234 10.3.4头文件236 10.4多线程编程示例239 10.4.1系统简要分析239 10.4.2系统设计240 10.4.3系统实现241 1章面向对象设计的原则244 11.1单一职责原则244 11.2开闭原则247 11.3聚集与组合复用原则248 11.4里氏替换原则248 11.5依赖倒置原则249 11.6接口隔离原则251 11.7最少知识原则252 2章C++程序设计案例257 12.1案例描述257 12.2系统分析258 12.2.1MVC设计模式简介258 12.2.2系统的用例模型259 12.3系统设计259 12.3.1系统体系结构设计259 12.3.2对象设计260 12.3.3用户界面设计263 12.4系统实现263 附录AC++关键字274 附录B常用运算符的优先级和 结合性275 附录C使用不同的C++编译器276 C.1使用GNUGCCforLinux276 C.2使用MinGW277 C.3使用VisualStudio2017(VS2017)277 C.4使用Clang278 参考文献280 内容推荐 本书以C++ 1y标准为基准,详细介绍了对象和面向对象技术的概念,并围绕案例的求解,深入浅出地介绍了面向对象技术的4个核心思想(数据封装、继承、多态和泛型编程)在C++中的概念、实现机制和语法、编程方法等,其中包括类和对象、运算符重载、继承和派生、虚函数和多态性、模 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。