21天学通C++(第7版) 9787115296245
正版。特价。
¥
8
1.4折
¥
59
八五品
库存27件
作者[美]Siddhartha Rao 著;袁国忠 译
出版社人民邮电出版社
出版时间2012-11
版次1
装帧平装
上书时间2024-08-13
商品详情
- 品相描述:八五品
图书标准信息
-
作者
[美]Siddhartha Rao 著;袁国忠 译
-
出版社
人民邮电出版社
-
出版时间
2012-11
-
版次
1
-
ISBN
9787115296245
-
定价
59.00元
-
装帧
平装
-
开本
16开
-
纸张
胶版纸
-
页数
456页
-
字数
870千字
-
正文语种
简体中文
-
原版书名
Sams Teach Yourself C++ in One Hour a Day,Seventh Edition
- 【内容简介】
-
《21天学通C++(第7版)》通过大量短小精悍的程序,详细而全面地阐述了C++基本概念和技术以及C++11新增的功能,包括管理输入/输出、循环和数组、面向对象编程、模板、使用标准模板库以及lambda表达式等。这些内容被组织成结构合理、联系紧密的章节,每章都可在1小时内阅读完毕;每章都提供了示例程序清单,并辅以示例输出和代码分析,以阐述该章介绍的主题。为加深读者对所学内容的理解,每章末尾都提供了常见问题及其答案以及练习和测验。读者可对照附录D提供的测验和练习答案,了解自己对所学内容的掌握程度。
《21天学通C++(第7版)》是针对C++初学者编写的,不要求读者有C语言方面的背景知识,可作为高等院校教授C++课程的教材,也可供初学者自学C++时使用。
- 【作者简介】
-
Siddhartha Rao是一位Microsoft Visual C++MVP,拥有在各种平台上编写驱动程序和应用程序的丰富经验。他受聘于SAP AG,当前为SAP Product SecurityIndia的负责人,主要职责包括制定软件开发最佳实践,以确保SAP软件的安全和全球竞争力。
- 【目录】
-
第1章绪论
1.1C++简史
1.1.1与C语言的关系
1.1.2C++的优点
1.1.3C++标准的发展历程
1.1.4哪些人使用C++程序
1.2编写C++应用程序
1.2.1生成可执行文件的步骤
1.2.2分析并修复错误
1.2.3集成开发环境
1.2.4编写第一个C++应用程序
1.2.5生成并执行第一个C++应用程序
1.2.6理解编译错误
1.3C++11新增的功能
1.4总结
1.5问与答
1.6作业
1.6.1测验
1.6.2练习
第2章C++程序的组成部分
2.1HelloWorld程序的组成部分
2.1.1预处理器编译指令#include
2.1.2程序的主体-main()
2.1.3返回值
2.2名称空间的概念
2.3C++代码中的注释
2.4C++函数
2.5使用std::cin和std::cout执行基本输入输出操作
2.6总结
2.7问与答
2.8作业
2.8.1测验
2.8.2练习
第3章使用变量和常量
3.1什么是变量
3.1.1内存和寻址概述
3.1.2声明变量以访问和使用内存
3.1.3声明并初始化多个类型相同的变量
3.1.4理解变量的作用域
3.1.5全局变量
3.2编译器支持的常见C++变量类型
3.2.1使用bool变量存储布尔值
3.2.2使用char变量存储字符
3.2.3有符号整数和无符号整数的概念
3.2.4有符号整型short、int、long和longlong
3.2.5无符号整型unsignedshort、unsignedint、unsignedlong和unsignedlonglong
3.2.6浮点类型float和double
3.3使用sizeof确定变量的长度
3.4使用typedef替换变量类型
3.5什么是常量
3.5.1字面常量
3.5.2使用const将变量声明为常量
3.5.3使用constexpr声明常量
3.5.4枚举常量
3.5.5使用#define定义常量
3.6给变量和常量命名
3.7不能用作常量或变量名的关键字
3.8总结
3.9问与答
3.10作业
3.10.1测验
3.10.2练习
第4章管理数组和字符串
4.1什么是数组
4.1.1为何需要数组
4.1.2声明和初始化静态数组
4.1.3数组中的数据是如何存储的
4.1.4访问存储在数组中的数据
4.1.5修改存储在数组中的数据
4.2多维数组
4.2.1声明和初始化多维数组
4.2.2访问多维数组中的元素
4.3动态数组
4.4C风格字符串
4.5C++字符串:使用std::string
4.6总结
4.7问与答
4.8作业
4.8.1测验
4.8.2练习
第5章使用表达式、语句和运算符
5.1语句
5.2复合语句(语句块)
5.3使用运算符
5.3.1赋值运算符(=)
5.3.2理解左值和右值
5.3.3加法运算符(+)、减法运算符、乘法运算符(*)、除法运算符(/)和求模运算符(%)
5.3.4递增运算符(++)和递减运算符(——)
5.3.5前缀还是后缀
5.3.6相等运算符(==)和不等运算符(!=)
5.3.7关系运算符
5.3.8逻辑运算NOT、AND、OR和XOR
5.3.9使用C++逻辑运算NOT(!)、AND(&&)和OR(||)
5.3.10按位运算符NOT(~)、AND(&)、OR(|)和XOR(^)
5.3.11按位右移运算符(>>)和左移运算符()访问成员
9.2关键字public和private
9.2.1使用关键字private实现数据抽象
9.3构造函数
9.3.1声明和实现构造函数
9.3.2何时及如何使用构造函数
9.3.3重载构造函数
9.3.4没有默认构造函数的类
9.3.5带默认值的构造函数参数
9.3.6包含初始化列表的构造函数
9.4析构函数
9.4.1声明和实现析构函数
9.4.2何时及如何使用析构函数
9.5复制构造函数
9.5.1浅复制及其存在的问题
9.5.2使用复制构造函数确保深复制
9.5.3有助于改善性能的移动构造函数
9.6构造函数和析构函数的其他用途
9.6.1不允许复制的类
9.6.2只能有一个实例的单例类
9.6.3禁止在栈中实例化的类
9.7this指针
9.8将sizeof()用于类
9.9结构不同于类的地方
9.10声明友元
9.11总结
9.12问与答
9.13作业
9.13.1测验
9.13.2练习
第10章实现继承
10.1继承基础
10.1.1继承和派生
10.1.2C++派生语法
10.1.3访问限定符protected
10.1.4基类初始化-向基类传递参数
10.1.5在派生类中覆盖基类的方法
10.1.6调用基类中被覆盖的方法
10.1.7在派生类中调用基类的方法
10.1.8在派生类中隐藏基类的方法
10.1.9构造顺序
10.1.10析构顺序
10.2私有继承
10.3保护继承
10.4切除问题
10.5多继承
10.6总结
10.7问与答
10.8作业
10.8.1测验
10.8.2练习
第11章多态
11.1多态基础
11.1.1为何需要多态行为
11.1.2使用虚函数实现多态行为
11.1.3为何需要虚构造函数
11.1.4虚函数的工作原理——理解虚函数表
11.1.5抽象基类和纯虚函数
11.2使用虚继承解决菱形问题
11.3可将复制构造函数声明为虚函数吗
11.4总结
11.5问与答
11.6作业
11.6.1测验
11.6.2练习
第12章运算符类型与运算符重载
12.1C++运算符
12.2单目运算符
12.2.1单目运算符的类型
12.2.2单目递增与单目递减运算符
12.2.3转换运算符
12.2.4解除引用运算符(*)和成员选择运算符(->)
12.3双目运算符
12.3.1双目运算符的类型
12.3.2双目加法与双目减法运算符
12.3.3实现运算符+=与(=
12.3.4重载等于运算符(==)和不等运算符(!=)
12.3.5重载运算符、=
12.3.6重载复制赋值运算符(=)
12.3.7下标运算符
12.4函数运算符operator()
12.5不能重载的运算符
12.6总结
12.7问与答
12.8作业
12.8.1测验
12.8.2练习
第13章类型转换运算符
13.1为何需要类型转换
13.2为何有些C++程序员不喜欢C风格类型转换
13.3C++类型转换运算符
13.3.1使用static_cast
13.3.2使用dynamic_cast和运行阶段类型识别
13.3.3使用reinterpret_cast
13.3.4使用const_cast
13.4C++类型转换运算符存在的问题
13.5总结
13.6问与答
13.7作业
13.7.1测验
13.7.2练习
第14章宏和模板简介
14.1预处理器与编译器
14.2使用#define定义常量
14.3使用#define编写宏函数
14.3.1为什么要使用括号
14.3.2使用assert宏验证表达式
14.3.3使用宏函数的优点和缺点
14.4模板简介
14.4.1模板声明语法
14.4.2各种类型的模板声明
14.4.3模板函数
14.4.4模板与类型安全
14.4.5模板类
14.4.6模板的实例化和具体化
14.4.7声明包含多个参数的模板
14.4.8声明包含默认参数的模板
14.4.9一个模板示例
14.4.10模板类和静态成员
14.4.11在实际C++编程中使用模板
14.5总结
14.6问与答
14.7作业
14.7.1测验
14.7.2练习
第15章标准模板库简介
15.1STL容器
15.1.1顺序容器
15.1.2关联容器
15.1.3选择正确的容器
15.1.4容器适配器
15.2STL迭代器
15.3STL算法
15.4使用迭代器在容器和算法之间交互
15.5STL字符串类
15.6总结
15.7问与答
15.8作业
第16章STLstring类
16.1为何需要字符串操作类
16.2使用STLstring类
16.2.1实例化和复制STLstring
16.2.2访问std::string的字符内容
16.2.3拼接字符串
16.2.4在string中查找字符或子字符串
16.2.5截短STLstring
16.2.6字符串反转
16.2.7字符串的大小写转换
16.3基于模板的STLstring实现
16.4总结
16.5问与答
16.6作业
16.6.1测验
16.6.2练习
第17章STL动态数组类
17.1std::vector的特点
17.2典型的vector操作
17.2.1实例化vector
17.2.2使用push_back()在末尾插入元素
17.2.3使用insert()在指定位置插入元素
17.2.4使用数组语法访问vector中的元素
17.2.5使用指针语法访问vector中的元素
17.2.6删除vector中的元素
17.3理解大小和容量
17.4STLdeque类
17.5总结
17.6问与答
17.7作业
17.7.1测验
17.7.2练习
第18章STLlist和forward_list
18.1std::list的特点
18.2基本的list操作
18.2.1实例化std::list对象
18.2.2在list开头或末尾插入元素
18.2.3在list中间插入元素
18.2.4删除list中的元素
18.3对list中的元素进行反转和排序
18.3.1使用list::reverse()反转元素的排列顺序
18.3.2对元素进行排序
18.3.3对包含对象的list进行排序以及删除其中的元素
18.4总结
18.5问与答
18.6作业
18.6.1测验
18.6.2练习
第19章STL集合类
19.1简介
19.2STLset和multiset的基本操作
19.2.1实例化std::set对象
19.2.2在set或multiset中插入元素
19.2.3在STLset或multiset中查找元素
19.2.4删除STLset或multiset中的元素
19.3使用STLset和multiset的优缺点
19.4总结
19.5问与答
19.6作业
19.6.1测验
19.6.2练习
第20章STL映射类
20.1STL映射类简介
20.2std::map和std::multimap的基本操作
20.2.1实例化std::map和std::multimap
20.2.2在STLmap或multimap中插入元素
20.2.3在STLmap或multimap中查找元素
20.2.4在STLmultimap中查找元素
20.2.5删除STLmap或multimap中的元素
20.3提供自定义的排序谓词
20.3.1散列表的工作原理
20.3.2使用C++11散列表unordered_map和unordered_multimap
20.4总结
20.5问与答
20.6作业
20.6.1测验
20.6.2练习
第21章理解函数对象
21.1函数对象与谓词的概念
21.2函数对象的典型用途
21.2.1一元函数
21.2.2一元谓词
21.2.3二元函数
21.2.4二元谓词
21.3总结
21.4问与答
21.5作业
21.5.1测验
21.5.2练习
第22章C++lambda表达式
22.1lambda表达式是什么
22.2如何定义lambda表达式
22.3一元函数对应的lambda表达式
22.4一元谓词对应的lambda表达式
22.5通过捕获列表接受状态变量的lambda表达式
22.6lambda表达式的通用语法
22.7二元函数对应的lambda表达式
22.8二元谓词对应的lambda表达式
22.9总结
22.10问与答
22.11作业
22.11.1测验
22.11.2练习
第23章STL算法
23.1什么是STL算法
23.2STL算法的分类
23.2.1非变序算法
23.2.2变序算法
23.3使用STL算法
23.3.1根据值或条件查找元素
23.3.2计算包含给定值或满足给定条件的元素数
23.3.3在集合中搜索元素或序列
23.3.4将容器中的元素初始化为指定值
23.3.5使用std::generate()将元素设置为运行阶段生成的值
23.3.6使用for_each()处理指定范围内的元素
23.3.7使用std::transform()对范围进行变换
23.3.8复制和删除操作
23.3.9替换值以及替换满足给定条件的元素
23.3.10排序、在有序集合中搜索以及删除重复元素
23.3.11将范围分区
23.3.12在有序集合中插入元素
23.4总结
23.5问与答
23.6作业
23.6.1测验
23.6.2练习
第24章自适应容器:栈和队列
24.1栈和队列的行为特征
24.1.1栈
24.1.2队列
24.2使用STLstack类
24.2.1实例化stack
24.2.2stack的成员函数
24.2.3使用push()和pop()在栈顶插入和删除元素
24.3使用STLqueue类
24.3.1实例化queue
24.3.2queue的成员函数
24.3.3使用push()在队尾插入以及使用pop()从队首删除
24.4使用STL优先级队列
24.4.1实例化priority_queue类
24.4.2priority_queue的成员函数
24.4.3使用push()在priority_queue末尾插入以及使用pop()在priority_queue开头删除
24.5总结
24.6问与答
24.7作业
24.7.1测验
24.7.2练习
第25章使用STL位标志
25.1bitset类
25.2使用std::bitset及其成员
25.2.1std:bitset的运算符
25.2.2std::bitset的成员方法
25.3vector
25.3.1实例化vector
25.3.2vector的成员函数和运算符
25.4总结
25.5问与答
25.6作业
25.6.1测验
25.6.2练习
第26章理解智能指针
26.1什么是智能指针
26.1.1常规(原始)指针存在的问题
26.1.2智能指针有何帮助
26.2智能指针是如何实现的
26.3智能指针类型
26.3.1深复制
26.3.2写时复制机制
26.3.3引用计数智能指针
26.3.4引用链接智能指针
26.3.5破坏性复制
26.4深受欢迎的智能指针库
26.5总结
26.6问与答
26.7作业
26.7.1测试
26.7.2练习
第27章使用流进行输入和输出
27.1流的概述
27.2重要的C++流类和流对象
27.3使用std::cout将指定格式的数据写入控制台
27.3.1使用std::cout修改数字的显示格式
27.3.2使用std::cout对齐文本和设置字段宽度
27.4使用std::cin进行输入
27.4.1使用std::cin将输入读取到基本类型变量中
27.4.2使用std::cin:get将输入读取到char数组中
27.4.3使用std::cin将输入读取到std::string中
27.5使用std::fstream处理文件
27.5.1使用open()和close()打开和关闭文件
27.5.2使用open()创建文本文件并使用运算符>读取文本文件
27.5.4读写二进制文件
27.6使用std::stringstream对字符串进行转换
27.7总结
27.8问与答
27.9作业
27.9.1测验
27.9.2练习
第28章异常处理
28.1什么是异常
28.2导致异常的原因
28.3使用try和catch捕获异常
28.3.1使用catch(...)处理所有异常
28.3.2捕获特定类型的异常
28.3.3使用throw引发特定类型的异常
28.4异常处理的工作原理
28.4.1std::exception类
28.4.2从std::exception派生出自定义异常类
28.5总结
28.6问与答
28.7作业
28.7.1测验
28.7.2练习
第29章继续前行
29.1当今的处理器有何不同
29.2如何更好地利用多个内核
29.2.1线程是什么
29.2.2为何要编写多线程应用程序
29.2.3线程如何交换数据
29.2.4使用互斥量和信号量同步线程
29.2.5多线程技术带来的问题
29.3编写杰出的C++代码
29.4更深入地学习C++
29.4.1在线文档
29.4.2提供指南和帮助的社区
29.5总结
29.6问与答
29.7作业
附录A二进制和十六进制
A.1十进制
A.2二进制
A.2.1计算机为何使用二进制
A.2.2位和字节
A.2.31KB相当于多少字节
A.3十六进制
A.4不同进制之间的转换
A.4.1通用转换步骤
A.4.2从十进制转换为二进制
A.4.3从十进制转换为十六进制
附录BC++关键字
附录C运算符优先级
附录D答案
附录EASCII码
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价