发表于2024-11-05
第1章 计算机和C++简介
1.1简介
1.2计算机和互联网在工业和研究领域中的应用
1.3硬件和软件
1.4数据的层次结构
1.5机器语言、 汇编语言和高级语言
1.6 C++
1.7程序设计语言
1.8对象技术介绍
1.9典型的C++程序开发环境
1.10试运行一个C++应用程序
1.11操作系统
1.12互联网和万维网
1.13软件开发的一些关键术语
1.14 C++11和开源的Boost库
1.15与信息技术与时俱进
1.16 Web资源
第2章 C++编程入门、 输入/输出和运算符
2.1简介
2.2第一个C++程序: 输出一行文本
2.3修改第一个C++程序
2.4另一个C++程序: 整数相加
2.5内存的概念
2.6算术运算
2.7判断: 相等运算符和关系运算符
2.8本章小结
第3章 类、 对象和字符串的介绍
3.1简介
3.2定义具有成员函数的类
3.3定义具有形参的成员函数
3.4数据成员、 set成员函数和get成员函数
3.5使用构造函数初始化对象
3.6一个类对应一个独立文件的可复用性
3.7接口与实现的分离
3.8用set函数确认数据的有效性
3.9本章小结
第4章 控制语句(第I部分)、 赋值、 自增和自减运算符
4.1简介
4.2算法
4.3伪代码
4.4控制结构
4.5 if选择语句
4.6 if...else双路选择语句
4.7 while循环语句
4.8算法详述: 计数器控制的循环
4.9算法详述: 标记控制的循环
4.10算法详述: 嵌套的控制语句
4.11赋值运算符
4.12自增和自减运算符
4.13本章小结
第5章 控制语句(第II部分)和逻辑运算符
5.1简介
5.2计数器控制的循环的要素
5.3 for循环语句
5.4使用for语句的例子
5.5 do...while循环语句
5.6 switch多路选择语句
5.7 break和continue语句
5.8逻辑运算符
5.9 ==运算符与=运算符的混淆问题
5.10结构化编程小结
5.11本章小结
第6章 函数和递归入门
6.1简介
6.2 C++的程序组件
6.3数学库函数
6.4具有多个形参的函数定义
6.5函数原型和实参类型的强制转换
6.6C++标准库头文件
6.7实例研究: 随机数生成
6.8实例研究: 博彩游戏和枚举类型简介
6.9C++11的随机数
6.10存储类别和存储期
6.11作用域规则
6.12函数调用堆栈和活动记录
6.13无形参的函数
6.14内联函数
6.15引用和引用形参
6.16默认实参
6.17一元的作用域分辨运算符
6.18函数重载
6.19函数模板
6.20递归
6.21递归应用示例: Fibonacci数列
6.22递归与迭代
6.23本章小结
第7章 类模板array和vector、 异常捕获
7.1简介
7.2 array对象
7.3 array对象的声明
7.4使用array对象的例子
7.5基于范围的for语句
7.6实例研究: 利用array对象存放成绩的GradeBook类
7.7 array对象的排序与查找
7.8多维array对象
7.9实例研究: 利用二维array对象的GradeBook类
7.10 C++标准库类模板vector的介绍
7.11本章小结
第8章 指针
8.1简介
8.2指针变量的声明和初始化
8.3指针运算符
8.4使用指针的按引用传递方式
8.5内置数组
8.6使用const修饰指针
8.7 sizeof运算符
8.8指针表达式和指针算术运算
8.9指针和内置数组之间的关系
8.10基于指针的字符串
8.11本章小结
第9章 类的深入剖析: 抛出异常
9.1简介
9.2 Time类实例研究
9.3类的作用域和类成员的访问
9.4访问函数和工具函数
9.5 Time类实例研究: 具有默认实参的构造函数
9.6析构函数
9.7何时调用构造函数和析构函数
9.8 Time类实例研究: 微妙的陷阱――返回private数据成员的引用或指针
9.9默认的逐个成员赋值
9.10 const对象和const成员函数
9.11组成: 对象作为类的成员
9.12 friend函数和friend类
9.13使用this指针
9.14 static类成员
9.15本章小结
第10章 运算符重载: string类
10.1简介
10.2使用标准库中string类的重载运算符
10.3运算符重载的基础知识
10.4重载二元运算符
10.5重载二元流插入运算符和流提取运算符
10.6重载一元运算符
10.7重载一元前置与后置运算符: ++和--
10.8实例研究: Date类
10.9动态内存管理
10.10实例研究: Array类
10.11运算符作为成员函数和非成员函数的比较
10.12类型转换
10.13 explicit构造函数与转换运算符
10.14重载函数调用运算符()
10.15本章小结
第11章 面向对象编程: 继承
11.1简介
11.2基类和派生类
11.3基类和派生类之间的关系
11.4派生类中的构造函数和析构函数
11.5 public、 protected和private继承
11.6继承与软件工程
11.7本章小结
第12章 面向对象编程: 多态性
12.1简介
12.2多态性介绍: 多态视频游戏
12.3类继承层次中对象之间的关系
12.4类型域和switch语句
12.5抽象类和纯virtual函数
12.6实例研究: 应用多态性的工资发放系统
12.7(选读)多态性、 virtual函数和动态绑定的底层实现机制
12.8实例研究: 应用向下强制类型转换、 dynamic_cast、 typeid和type_info并使用
多态性和运行时类型信息的工资发放系统
12.9本章小结
第13章 输入/输出流的深入剖析
13.1简介
13.2流
13.3输出流
13.4输入流
13.5使用read、 write和gcount的非格式化的I/O
13.6流操作符简介
13.7流的格式状态和流操作符
13.8流的错误状态
13.9将输出流连接到输入流
13.10本章小结
第14章 文件处理
14.1简介
14.2文件和流
14.3创建顺序文件
14.4从顺序文件读取数据
14.5更新顺序文件
14.6随机存取文件
14.7创建随机存取文件
14.8向随机存取文件随机写入数据
14.9从随机存取文件顺序读取数据
14.10实例研究: 事务处理程序
14.11对象序列化
14.12本章小结第15章标准库的容器和迭代器
15.1标准模板库(STL)简介
15.2容器简介
15.3迭代器简介
15.4算法简介
15.5序列容器
15.6关联容器
15.7容器适配器
15.8 bitset类
15.9本章小结
第16章 标准库算法
16.1简介
16.2对迭代器的最低要求
16.3算法
16.4函数对象
16.5 lambda表达式
16.6标准库算法总结
16.7本章小结
第17章 异常处理深入剖析
17.1简介
17.2实例: 处理除数为0的异常处理
17.3重新抛出异常
17.4堆栈展开
17.5什么时候使用异常处理
17.6构造函数、 析构函数和异常处理
17.7异常与继承
17.8处理new失败
17.9类uique_ptr和动态内存分配
17.10标准库的异常类层次结构
17.11本章小结
第18章 自定义模板的介绍
18.1简介
18.2类模板
18.3使用函数模板来操作类模板特化的对象
18.4非类型形参
18.5模板类型形参的默认实参
18.6重载函数模板
18.7本章小结
第19章 自定义的模板化数据结构
19.1简介
19.2自引用类
19.3链表
19.4堆栈
19.5队列
19.6树
19.7本章小结
第20章 查找与排序
20.1简介
20.2查找算法
20.3排序算法
20.4本章小结
第21章 string类和字符串流处理的深入剖析
21.1简介
21.2字符串的赋值和连接
21.3字符串的比较
21.4子串
21.5交换字符串
21.6 string类的特征
21.7查找字符串中的子串和字符
21.8在字符串中替换字符
21.9在字符串中插入字符
21.10转换成C风格的基于指针的char字符串
21.11迭代器
21.12字符串流处理
21.13 C++11数值转换函数
21.14本章小结
第22章 位、 字符、 C字符串和结构体
22.1简介
22.2结构体的定义
22.3 typedef
22.4示例: 洗牌和发牌模拟
22.5位运算符
22.6位域
22.7字符处理库
22.8 C字符串操作函数
22.9 C字符串转换函数
22.10 C字符串操作库中的搜索函数
22.11 C字符串操作库中的内存函数
22.12本章小结
第23章 其他主题
23.1简介
23.2 const_cast运算符
23.3 mutable类成员
23.4命名空间
23.5运算符关键字
23.6指向类成员的指针(.和->)
23.7多重继承
23.8多重继承和virtual基类
23.9本章小结
附录A运算符的优先级与结合律
附录B ASCII字符集
附录C基本数据类型
附录D计数系统
附录E预处理器索引
前言
“The chief merit of language is clearness...?”
—Galen
欢迎走进C++计算机编程语言世界, 开始学习《C++大学教程(第九版)》。这本书为读者呈现了最前沿的计算技术。根据ACM和IEEE这两大专业组织就课程设置的建议,它非常适合作为入门课程的教材。对于还未意识到这点的读者, 请阅读封底和封底内页, 其凝练了本书的精髓。同时, 此前言为学生、 教师和专业人士提供了更多的相关细节。本书的核心是Deitel式的大量“活代码”(Live�瞔ode)。也就是说, 所有的概念都在完整的可运行的C++程序中得以阐述, 而非通过一些零碎的代码片段。每个例程的代码之后都提供了一个或多个运行实例。为了顺利地运行这些数以百计的例程, 请阅读在线章节“开始之前”(Before You Begin)(www.deitel.com/ books/cpphtp9/cpphtp9_BYB.pdf), 从而可以了解安装有Linux、 Windows或苹果公司的OS X等操作系统的计算机设置问题。在www.deitel.com/books/cpphtp9 和www.pearsonhighered.com/中可以获取所有的源代码相关在线章节和源代码可登录华信教育资源网(www.hxedu.com.cn)免费注册下载。。通过这些源代码, 可以边运行边理解每一个程序。我们相信这本教材及其辅助材料使大家的C++学习之旅既内容充实, 又具有挑战性和趣味性。在阅读教材的过程中若有问题,请随时访问deitel@deitel.com, 我们将在第一时间给予解答。此外, 通过访问www.deitel.com/books/cpphtp9, 或者加入Facebook(www.deitel.com/DeitelFan)、 Twitter (@deitel)、 Google+ (gplus.to/deitel)和LinkedIn (bit.ly/DeitelLinkedIn)等社会媒体社区, 以及订阅Deitel Buzz Online新闻组(www.deitel.com/newsletter/subscribe.html), 可以及时了解到关于这本教材的最新消息。C++11标准2011年发布的新的C++11标准在很大程度上激发了我们撰写《C++大学教程(第九版)》的积极性。《C++大学教程(第九版)》具有如下所列的一些关键C++11特性: ● 符合新的 C++11标准。广泛覆盖了图1所示的新的C++11标准特性。● 书中代码在业界三种主流C++11编译器上进行了全面的测试。所有代码示例均在GNU C++ 4.7、 Microsoft Visual C++ 2012 和 Apple LLVM in Xcode 4.5上通过测试。● 智能指针。智能指针通过提供内置指针之外的额外功能来帮助大家避免动态内容管理方面的错误。unique_ptr将在本书第17章而shared_ptr 和 weak_ptr将在第24章分别进行讨论。● 尽早涵盖标准库中的容器、 迭代器和算法, 并用C++11进行功能增强。本书将前版中到第22章才开始讲述的标准库中的容器、 迭代器和算法等内容, 提前到了第15章和第16章, 并且用一些C++11特性来增强。对数据结构的绝大多数需要可以通过重用这些标准库功能来满足。在第19章我们将展示如何为您量身定做自己的数据结构。● 在线的第24章“C++11: 其他主题”。这一章将介绍另外一些关于C++11的话题。新的C++11标准自2011年以来就可以采用了,但并不是所有的C++编译器已经完全实现了相应特性。如果在本书撰写时, 前述的三种主流编译器均实现了某个C++11特性, 那么我们一般会将该特性融入到一个活代码例子中并展开讨论。如果没有编译器实现这个特性, 那么通过一个粗斜体标题, 其后对它进行简要的讨论。随着C++11特性的实现, 许多相关的讨论在在线的第24中展开。这一章包括对正则表达式、 shared_ptr和weak_ptr智能指针、 转移语义等更多特性的描述。● 随机数生成、 模拟和游戏。为了使程序更加安全, 本书添加了C++11新的不确定性随机数生成功能的应用内容。《C++大学教程(第九版)》中的C++11特性all_of算法继承基类的构造函数不确定性随机数生成any_of算法insert容器成员函数返回迭代器none_of算法array容器is_heap算法数值转换函数auto类型推导is_heap_until算法nullptrbegin/end函数C++11中新的关键词override关键词cbegin/cend容器成员函数lambda表达式基于范围的for 语句模板类型中>>的编译器修复键值对的列表初始化正则表达式copy_if算法对象的列表初始化右值引用copy_n算法返回值的列表初始化作用域限定的枚举类型enumscrbegin/crend容器成员函数列表初始化一个动态分配的数组shared_ptr智能指针decltype列表初始化一个vectorshrink_to_fit vector/deque成员函数函数模板中默认类型参数构造函数调用中的列表初始化器指定一个枚举其常量的类型Defaulted成员函数long longint类型针对文件名的static_assert对象委托构造函数具有initializer_list参数的min和max算法针对文件名的string对象deleted成员函数minmax算法swap非成员函数explicit转换运算符minmax_element算法函数的尾随返回值类型final类move算法tuple可变参数模板final成员函数移动赋值运算符unique_ptr智能指针find_if_not算法move_backward算法无符号的long long intforward_list容器移动构造函数weak_ptr智能指针关联容器中的不可变键类内初始化器noexcept图1《C++大学教程(第九版)》中的C++11特性列表面向对象编程● 尽早接触对象的教学方法。本书在第1章就介绍对象技术的基本概念和术语, 在第3章开始开发自定义的类及对象。较早地接触对象和类, 可以使学生直接“考虑对象”和更彻底地掌握这些概念。● C++标准库的string类。C++提供两种类型的字符串——string类对象(将在第3章开始使用)和C风格的字符串。我们已经将大多数出现的C字符串替换为C++的string类对象, 这样可以使程序更加鲁棒, 并可以消除由操作C的字符串而引起的安全问题。在本书中, 我们仍继续讨论C字符串, 以便做好今后应对业界遗留代码中C字符串的准备。而在新的开发中, 应当首选string类的对象。● C++标准库的array类。对于数组, 我们现在直接使用C++标准库的array类模板, 而非内置的C风格的基于指针的数组。由于内置的C风格数组在C++中仍有用武之地, 并且还有不少遗留代码需要处理, 因此本书还是会介绍内置的C风格数组。C++提供三种类型的数组——array类模板对象、 vector类模板对象(这两者将在第7章开始使用)和C风格的基于指针的数组(将在第8章讨论)。根据情况, 我们在这整本书中将使用array类模板来代替C风格的数组。当然, 在新的开发中, 大家应当首选array类模板对 C++大学教程(第九版) [C++ How to Program, Ninth Edition] 下载 mobi epub pdf txt 电子书 格式
C++大学教程(第九版) [C++ How to Program, Ninth Edition] 下载 mobi pdf epub txt 电子书 格式 2024
C++大学教程(第九版) [C++ How to Program, Ninth Edition] 下载 mobi epub pdf 电子书很全面的一本工具书,见得很详细!
评分这是我们教学用的教材,翻译的挺好的
评分物流很快,书也非常符合我的要求
评分没有密封包装 封面质感很粗糙 表面很多刮痕边缘有褶皱感觉放了很久 里面纸质倒是不错 但这封面真的让人不舒服
评分正版,支持,就是有点贵
评分经典教材,通熟易懂。不过放在桌上挺装B的…
评分有一点贵
评分此用户未及时评价,系统默认好评。
评分很全面的一本工具书,见得很详细!
C++大学教程(第九版) [C++ How to Program, Ninth Edition] mobi epub pdf txt 电子书 格式下载 2024