大小:19.09M
更新时间:23-08-28
系统:Pc
完美C++(第5版)是一本c++语言学习教材,是美国常青藤名校十数年指定C++教材,它由加州大学圣迭戈分校计算机科学与工程系教授Walter Savitch萨维奇编著。本书很全面地介绍了c++语言的相关知识,其内容布置清晰、简明各章均有大量例子及完整的代码段和分析,并且还详细介绍了继承、多态、异常处理和标准模板库(STL)等c++相关知识,有利于读者对关键概念的理解,为读者提供了一个学习、理解和掌握C++编程语言的全面视图,覆盖面广、实用性非常强,是本不可多得的好书。
完美C++(第5版)采用了第4版相同的编程哲学,主要更新内容包括:第1章增加了字符串类的简单介绍,第2章增加了文本文件数据读取的简单介绍;第12章增加了对stringstream的价绍;第13章简捷地介绍了尾递归的概念并且给出了一个相互递归的例子;另外增加了10个自测练习题和25个编程项目练习。
完美C++(第5版)为读者提供了一个学习、理解和掌握 C++编程语言的全面视图,覆盖面广、实用性强。书中介绍了 C++的基本数据类型,如字符串、数组、指针、结构体、类等,同时也详细描述了面向对象编程语言的特性:封装、继承和多态,以及这些特性在 C++语言中的具体使用方式。本书的后面章节还重点介绍了模板、链式数据结构、标准模板库以及异常处理等C++语言的进阶编程知识。这些知识在从事具体编程工作时会经常使用到。
完美C++(第5版)对C++的一些重点知识,辅以实例进行了重点讲解,特别是对一些易混淆、易犯错的知识点,专门以“陷阱”的组织方式进行深入分析和讨论,帮助读者更好地理解和掌握。书中各章均含有大量例子及完整的代码段和分析,帮助读者强化对关键概念的理解,以及对主题的掌握。各章还配有丰富的自测习题以及答案,帮助读者进一步提升对C++知识的理解以及实际动手编程能力。
第1章 C++ 基础
1.1 C++简介
C++语言的起源
C++与面向对象编程
C++的特点
C++术语
C++程序示例
1.2 变量、表达式及赋值语句
标识符
变量
赋值语句
string类简介
陷阱:未初始化变量
提示:采用有意义的变量名
更多赋值语句
赋值兼容性
字面值
转义序列
命名常量
算数运算符和表达式
整数和浮点数除法
陷阱:全整数除法
类型转换
自增和自减运算符
陷阱:求值顺序
1.3 控制台输入/输出
使用cout输出
换行符
提示:以\n或endl结束程序
格式化浮点数
用cerr输出
用cin输入
提示:输入/输出中的换行
1.4 编程风格
注释
1.5 库与命名空间
库与include命令
命名空间
陷阱:库名的问题
第2章 流程控制
2.1 布尔表达式
创建布尔表达式
陷阱:不等式连写
布尔表达式求值
优先级规则
陷阱:整数值用作布尔值
2.2 分支机制
if-else语句
复合语句
陷阱:用=代替==
省略else
嵌套语句
多分支if-else语句
switch语句
陷阱:遗漏switch语句中的break
提示:在菜单中使用switch语句
枚举类型
条件运算符
2.3 循环
while和do-while循环
再谈自增和自减运算符
逗号运算符
for语句
提示:重复N次的循环
陷阱:for语句中额外的分号
陷阱:无限循环
break与continue语句
嵌套循环
2.4 文件输入简介
通过ifstream读取文本文件内容
第3章 函数基础
3.1 预定义函数
带有返回值的预定义函数
预定义的void函数
随机数生成器
3.2 自定义函数
定义带有返回值的函数
函数声明的另一种形式
陷阱:参数顺序的错误
调用函数的函数
示例:一个四舍五入的函数
返回布尔值的函数
定义void函数
void函数中的return语句
前提条件和运行结果
main函数
递归函数
3.3 作用域规则
局部变量
过程抽象
全局常量和全局变量
语句块
嵌套作用域
提示:在分支和循环语句中使用函数调用
for循环体中的变量声明
第4章 函数与重载
4.1 参数
传值参数
初识引用参数
引用传递调用机制详解
常量引用参数
示例:函数swapValues
提示:一种操作,而不是代码
混合参数列表
提示:使用何种参数
陷阱:无意的局部变量
提示:选择形参的名字
示例:买比萨
4.2 重载与默认实参
重载简介
陷阱:自动类型转换与重载
重载解析的规则
示例:改写"买比萨程序"
默认参数
4.3 函数的测试和调试
assert宏
占位程序和驱动程序
第5章 数组
5.1 数组简介
数组的声明和引用
提示:对数组使用for循环
陷阱:数组的索引始终是从0开始的
提示:使用已定义的常量作为数组的大小
内存中的数组
陷阱:数组越界
数组的初始化
5.2 函数中的数组
索引变量作为函数实参
整个数组作为函数实参
const修饰符
陷阱:const参数的不一致使用
返回数组的函数
示例:生产图表
5.3 用数组编程
部分填充的数组
提示:不要吝啬形参的使用
示例:查询数组
示例:给数组排序
5.4 多维数组
多维数组基础
多维数组参数
示例:使用二维数组的记分程序
第6章 结构体和类
6.1 结构体
结构体类型
陷阱:漏掉结构体定义末尾的分号
结构体作为函数参数
提示:使用多重结构体
结构体的初始化
6.2 类
定义类和成员函数
封装
公有成员和私有成员
取值和赋值函数
提示:接口和实现的分离
提示:封装的测试
结构体与类
提示:对象思考
第7章 构造函数及其他工具
7.1 构造函数
构造函数的定义
陷阱:无参构造函数
构造函数的显式调用
提示:总是为类定义一个默认构造函数
示例:BankAccount类
类类型成员变量
7.2 其他工具
const修饰符
陷阱:const的不一致用法
内联函数
静态成员
嵌套类和局部类定义
7.3 向量――标准模板库预览
向量基础
陷阱:方括号的索引超过向量的大小
提示:向量的赋值
效率问题
第8章 运算符重载、友元和引用
8.1 基本运算符的重载
重载基础
提示:构造函数可以返回一个对象
返回常量类型
一元运算符的重载
作为成员函数的运算符重载
提示:类可以访问其所有对象
重载函数调用符( )
陷阱:重载 &&、||及逗号运算符
8.2 友元函数与自动类型转换
构造函数的自动类型转换
陷阱:成员运算符和自动类型转换
友元函数
友元类
陷阱:不支持友元的编译器
8.3 引用和其他运算符重载
引用
提示:返回类的成员变量
重载">>"和"<<"
提示:应使用什么样的返回值类型
赋值运算符
重载自增和自减运算符
重载数组运算符[ ]
基于左值和右值的重载
第9章 字符串
9.1 字符串类型数组
C字符串值和C字符串变量
陷阱:对C字符串使用 "=" 和 "=="
<cstring>中的其他函数
示例: 命令行参数
C字符串的输入/输出
9.2 字符操作工具
字符的输入/输出
成员函数get和put
示例:使用换行函数检查输入
陷阱:输入时没有处理'\n'
成员函数putback、peek和ignore
字符操作函数
陷阱:函数toupper和tolower返回int型数值
9.3 标准string类
标准string类简介
string类的输入和输出
提示:getline函数的其他版本
陷阱:对cin同时使用>>和getline
使用string类处理字符串
示例: 回文检测
string类对象和C字符串的转换
第10章 指针和动态数组
10.1 指针
指针变量
内存管理基础
陷阱:悬空指针
动态变量和自动变量
提示:定义指针类型
陷阱:指针用作传值参数
指针的应用
10.2 动态数组
数组变量和指针变量
创建并使用动态数组
示例:一个返回数组的函数
指针运算
多维动态数组
10.3 类、指针和动态数组
运算符->
this指针
重载赋值运算符
示例:部分填充数组的类
析构函数
拷贝构造函数
第11章 分散编译和命名空间
11.1 分散编译
封装回顾
头文件和实现文件
示例:DigitalTime类
提示:可重用的组件
使用#ifndef
提示:定义其他库
11.2 命名空间
命名空间和using指令
创建一个命名空间
using声明
限定名称
提示:为命名空间取名
示例:一个定义在命名空间中的类
无名称的命名空间
陷阱:混淆全局命名空间和无名称命名空间
提示:用无名称命名空间代替static修饰符
提示:隐藏帮助函数
嵌套命名空间
提示:应该如何指明使用的命名空间
第12章 流和文件I/O操作
12.1 I/O流
文件I/O
陷阱:流变量的使用限制
向文件追加输出内容
提示: 打开文件的另一种方法
提示:检查一个文件是否已被成功打开
字符I/O
文件结束检查
12.2 I/O流工具
使用文件名输入
使用流函数进行格式化输出
控制符
保存设置的标记
更多的输出流成员函数
示例:整理文件格式
示例:编辑文本文件
12.3 流的继承层次:继承概述
流之间的继承
示例:另一版本的newLine函数
使用类stringstream解析字符串
12.4 随机文件存取
第13章 递归
13.1 递归void函数
示例:竖直排列的数字
跟踪一个递归调用
深入理解递归
陷阱:无限递归
递归调用中的栈
陷阱:栈溢出
递归与迭代的比较
13.2 有返回值的递归函数
有返回值的递归函数的一般形式
示例:另一个幂函数
交叉递归
13.3 按递归方式思考问题
递归设计技巧
二分查找
编码
检查递归是否正确
效率
第14章 继承
14.1 继承基础
派生类
派生类的构造函数
陷阱:使用基类的私有成员变量
陷阱:私有成员函数是无法被有效继承的
protected限定符
成员函数的重定义
重定义与重载
访问被重定义过的基类函数
不可被继承的函数
14.2 利用继承编程
派生类中的赋值运算符和拷贝构造函数
派生类的析构函数
示例:可备份的部分填充的数组
陷阱:赋值运算符两边是同一个对象
示例:PFArrayDBak的另一种实现
提示:一个类可以访问本类所有对象的私有成员
提示:"是一个"和"有一个"
保护继承和私有继承
多继承
第15章 多态与虚函数
15.1 虚函数基础
延迟绑定
C++中的虚函数
提示:virtual属性会被继承
提示:什么时候应该使用虚函数
陷阱:没有对虚成员函数进行定义
抽象类与纯虚函数
示例:抽象类
15.2 指针和虚函数
虚函数与扩展类型兼容性
陷阱:切片问题
提示:使析构函数成为虚函数
向下类型转换和向上类型转换
C++如何实现虚函数
第16章 模板
16.1 函数模板
函数模板语法
陷阱:编译器的复杂性
提示:如何定义模板
示例:一个通用的排序函数
陷阱:使用模板时误用了不正确的数据类型
16.2 类模板
类模板语法
示例:一个数组模板类
模板中的vector和 basic_string
16.3 模板和继承
示例: 带备份的部分填充数组模板类
第17章 链式数据结构
17.1 节点和链表
节点
链表
在链表头插入节点
陷阱:丢失节点
插入和删除链表内的节点
陷阱:对动态数据结构使用赋值运算符
搜索链表
搜索函数伪代码
双向链表
为双向链表增加一个节点
从双向链表中删除一个节点
示例: 使用双向链表实现的通用排序模板函数
17.2 链表的应用
示例:栈模板类
示例:队列模板类
提示:命名空间的注解
友元类以及类似的其他选择
示例:包含节点链的哈希表
字符串哈希函数
哈希表的效率
示例:集合(set)模板类
集合的基本操作
链表创建的集合的效率
17.3 迭代器
指针作为迭代器
迭代器类
示例:迭代器类
17.4 树
树的属性
示例:树模板类
第18章 异常处理
18.1 异常处理基础
异常处理的简单样例
定义自己的异常类
多个抛出和捕获
陷阱:首先捕获比较明确的异常
提示:异常类可以很简单
在函数中抛出异常
异常说明
陷阱:派生类中的异常说明
18.2 异常处理的编程技术
抛出异常的时机
陷阱:未被捕获的异常
陷阱:嵌套try-catch块
陷阱:过度使用异常
异常类层次结构
可用内存测试
再次抛出异常
第19章 标准模板库
19.1 迭代器
迭代器基础
陷阱:编译器问题
迭代器的种类
常量迭代器和可变迭代器
反向迭代器
其他种类的迭代器
19.2 容器
连续容器
陷阱:迭代器和删除元素
提示:容器中的类型定义
容器适配器栈和队列
陷阱:底层容器
关联式容器set和map
效率
19.3 泛型算法
运行时间和大-O表示法
容器访问运行时间
不改变序列的算法
改变序列的算法
集合算法
排序算法
1、下载并解压,得出pdf文件
2、如果打不开本文件,请务必下载pdf阅读器
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读
应用信息
同类热门
类似软件
EMC NetWorker8 管理员指南(中文)6.74M267人在用 EMC NetWorker8 管理员指南是专门针对EMC NetWorker8推出的一款可以快速上手EMC NetWorker8的教程手册,该手册内容按 “原样”提供,主要围绕EMC NetWorker概述、备份数据、存储节点和库、磁盘备份和云、备
查看
TCP/IP Builder(tcp/udp测试工具)1.5M540人在用 TCP/IP Builder是一款操作方便、功能强大的Windows Socket测试软件,作为一款tcp/udp测试工具,它允许你手动设置指定的套接字连接(或监听连接)并通过它发送和接收数据,支持设置本地IP和端口、TCP / UDP协议、DNS
查看
Dead Pixel Locator(显示器坏点测试软件)348K4027人在用 Dead Pixel Locator是一款免安装的LCD显示器坏点测试工具,通过显示纯色来协助肉眼查找显示器的坏点,内置白、黄、黑、绿等多种纯色测试方案,支持自设颜色调整,操纵简单,实用方便,可随身携带,有需求的朋友请下载。
查看
批量将TXT生成CHM文件工具879K349人在用 批量将TXT生成CHM文件工具是一款可批量将TXT文件生成一个CHM文件的免费绿色软件,简称为TXT转换CHM软件,其好处在于可以批量浏览,方便传播以及能够起到禁止使用者更改其中的内容。另外,批量将TXT生成CHM文件工具操作也十分方便,选择一个T
查看热门标签
网友评论0人参与,0条评论
最新排行
android应用程序开发教程android studio版pdf47.32M android应用程序开发教程android studio版pdf是一本Android应用程序开发教程书籍,由罗文龙编著。本书以最新的Google官方Android IDE-Android Studio V1.3为开发环境对实例进行开发讲解,让读者
查看
ASP.NET 3.5 揭秘(卷2)58.31MASP.NET 3.5 揭秘(卷2)是一本ASP.NET 3.5框架揭秘书籍,由美国程序员沃尔瑟(WaltherS)编著。本书为需要创建网站的专业程序员而写,是一本使用ASENET 3.5创建网站的十分全面的参考书,主要介绍了ASP.NET的安全性,缓存
查看
asp.net mvc5编程实战第3版67.64M埃斯波西托 pdf扫描版 asp.net mvc5编程实战第3版是一本。NET开发经典名著,由著名的Wed和移动开发专Dino Esposito编著。本书将带你深入了解ASPNET MVC5的架构和特性,并学习构建在桌面和移动设备上都运行良好的Web应用程序。同时将向用户全
查看
openstack设计与实现41.66M英特尔开源技术中心pdf扫描版 openstack设计与实现是一本OpenStack必选必读经典,由英特尔开源技术中心编著。本书内容丰富翔实,以juno版本为基础,覆盖了openstack的学习到设计与实现等各个方面的内容,致力于帮助读者形成openstack及其各个主要组件与项
查看
游戏安全手游安全技术入门pdf50.56M 游戏安全手游安全技术入门pdf是一本移动游戏安全开山之作,由腾讯游戏研发部游戏安全中心全体人员编著。本书是一本充斥着大量的专业术语和专业知识的书籍,具备了技术畅销书的各种品质,内容全面、精辟、流畅、成熟,讲解由浅入深,完美覆盖手游安全基础、外挂实现
查看
数据清洗入门与实践pdf30.14M扫描版干净的数据 数据清洗入门与实践是一本数据清洗指导学习书籍,由美国的Megan Squie编著,本书从文件格式、数据类型、字符编码等基本概念讲起,通过真实的示例,探讨如何提取和清洗关系型数据库、网页文件和PDF文档中的数据。 最后提供了两个真实的项目,让
查看
游戏人工智能编程案例精粹53.61M 游戏人工智能编程案例精粹是一本讲述如何使游戏角色具有人工智能的著作。对比传统游戏人工智能介绍,该书具有实例丰富、语言幽默的特点,能够帮助用户学会创建适合于各种游戏类型主要行为的、具有有趣的和挑战性的人工智能的必要技术,从而对游戏人工智能的关键领域具
查看
搜索引擎营销:网站流量大提速(第2版)173.07M莫兰pdf扫描版 搜索引擎营销:网站流量大提速(第2版)是搜索营销行业的一本圣经,由美国互联网营销人员莫兰Mike Moran编写。本书相比上一版本,加入了对多媒体优化、改进站内搜索等方面富有启发性的内容,并且对新兴社会媒体对搜索的影响进行了介绍,紧紧跟上了迅猛发展
查看
学通ASP.NET的24堂课81.47M房大伟pdf扫描版 ASP.NET是微软公司推出的一款新一代动态web应用程序开发平台,具有方便性,灵活,性能优,生产效率高,安全性高等特性,是目前主流的网络编程工具,但如何更好的快速掌握呢?小编这里推荐用户使用学通ASP.NET的24堂课,这是一本ASP.NET技术
查看
架构探险从零开始写javaweb框架74.49M黄勇pdf扫描版 架构探险从零开始写javaweb框架是一本java web框架编写教材,由阿里巴巴公司系统架构师黄勇编著。本书从开发工具入手,让读者们熟练使用IDE,更让读者一步一步熟悉Servlet到搭建轻量级框架,精简易懂,由类加载器到实现请求转发,使读者更清
查看
网络安全评估从漏洞到补丁75.24Mpdf扫描版 网络安全评估从漏洞到补丁是一本网络安全指导书籍,由美国网络安全专家Steve Manzuik编著,张建标编译。全书主要将漏洞管理技术融入到业务管理中,只有将黑客所实施的威胁与对组织造成的风险联系到一起时,这些知识才是有价值的,而本书就是要介绍完成这
查看
锋利的jquery第2版106.29Mpdf电子书锋利的jquery第2版是目前学习和进阶jquery最好的电子图书,已经由小编制作成了pdf电子书,用户下载后即可阅读。第2版不仅在内容方面进行更新,而且还在上一版的基础上做了大量的修订和扩展,涵盖了如下几个方面:1、例子全部改用最新的jquery库;2
查看
python项目开发实战 第2版13.23Mpdf扫描版 python项目开发实战 第2版是一本Python项目开发流程实战手册,由日本BePROUD股份有限公司编著。本书的内容全部基于python开发事实,全部都是BeProud员工实际尝试、实践过的,可以给读者提供一些能实际应用且行之有效的知识,读过本
查看