大小: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、双击进行阅读
同类热门
类似软件
TCP/IP Builder(tcp/udp测试工具)1.04M405人在用TCP/IP Builder是一款操作方便、功能强大的Windows Socket测试软件,作为一款tcp/udp测试工具,它允许你手动设置指定的套接字连接(或监听连接)并通过它发送和接收数据,支持设置本地IP和端口、TCP / UDP协议、DNS解析器
查看CorelDRAW 12 绿色简体中文版727.3M39433人在用CorelDRAW 12是一套屡获殊荣的图形图像编辑软件,能精确捕捉你的创作神髓。CorelDRAW 12套装含两个绘图应用程序:一个用于矢量图及页面设计,一个用于图像编辑。这套惊人的绘图软件带给你强大的交互工具,可创作出多种富于动感的特殊效果及点阵图像
查看热门标签
网友评论0人参与,0条评论
最新排行
oracle开发实战经典110.75M李兴华pdf扫描版 oracle开发实战经典是一本Oracle数据库实战手册,由李兴华编著。本书以Oracle 12c版本为基础(也适合Oracle 11g版本),对12c的新功能做了详细讲述。并且实例非常丰富,各类实例达1200个,达到实战水平只需一本书够了。同时本
查看Oracle管理之道126.91M张天慧pdf扫描版 Oracle管理之道是目前最完整、最真实、最灵活的oracle数据库指南,由华硕集团昌硕科技DBA张天慧编著。本书内容为作者多年的DBA实践经验的提炼,完全涵盖了担任企业级数据库管理职务所应具备的知识与技能,全书从Oracle实例开始,介绍了各种内
查看c#网络编程技术教程57.23M金华pdf扫描版c#网络编程技术教程是一本C#网络编程技术教程手册,由金华和华进两人共同编著。本书注重理论与实践的结合、循序渐进的教学方法,系统介绍了C#网络编程的相关知识,使读者能够快速掌握基于C#的网络应用开发技术。根据应用的需要,书中在内容安排上对C#基础知识进行
查看asp.net mvc 5 框架揭秘20.5M蒋金楠 高清扫描版 asp.net mvc 5 框架揭秘是一本ASP.NET MVC框架学习教材,由。net顶级专家蒋金楠编著。本书以消息流向为主线,对新的ASP.NET MVC框架从接收请求到响应回复的整个流程进行了细致而深入的讲解。全书覆盖路由、Controlle
查看高效能人士的七个习惯(30周年纪念版)14.31Mpdf+epub高清版高效能人士的七个习惯是中国青年出版社出版的一本图书,其作者史蒂芬·柯维是著名的管理学大师,也是美国家喻户晓的启蒙家,书本内容是基于历久弥新效能原则的个人领导力的体系,能够激发组织和个人成就。小编今天带来的是高效能人士的七个习惯(30周年纪念版),它高居《
查看7天学会Dreamweaver CS4网页制作16.45M三虎工作室pdf扫描版7天学会Dreamweaver CS4网页制作是一本Dreamweaver速成学习手册,由三虎工作室编著。本书内容详实、结构清晰、案例丰富、图文并茂,通过“步骤引导,图解操作”的讲解方式做到理论与实践相结合,从而使读者能在短时间内充分掌握Dreamwea
查看2017铁路工程管理与实务73.3Mpdf高清版2017铁路工程管理与实务,又称之为2017一级建造师铁路工程管理与实务电子书,是一级建造师必考的科目,该版本根据2014年版一级建造师《专业工程管理与实务)) (铁路工程)科目考试大纲编写,主要阐述了《考试大纲》的核心内容,按照章节目条排序,不考虑前后
查看php深度分析:101个核心技巧窍门和问题解决方法原书第2版48.46M沙菲克 pdf扫描版php深度分析:101个核心技巧窍门和问题解决方法原书第2版是想要研究复杂PHP解决方案的PHP开发人员的必备伙伴,本书由德国PHP开发程序员BEN BALBO编著,周广辉、杨建军等翻译。全书首次汇集了定期发布在SitePoint论坛上的常见PHP问题的
查看深入浅出数据分析pdf35.06M扫描版深入浅出数据分析是一本数据分析手册,由Michael Milton编著,李芳翻译。本书构思跌宕起伏,行文妙趣横生,无论读者是职场老手,还是业界新人;无论是字斟句酌,还是信手翻阅,都能跟着文字在职场中走上几回,体味数据分析领域的乐趣与挑战。深入浅出数据分析
查看