主页 详情

《21天学通C++ 原书第7版》_(美)罗奥著;袁国忠译_13239569_9787115296245

【书名】:《21天学通C++ 原书第7版》
【作者】:(美)罗奥著;袁国忠译
【出版社】:北京:人民邮电出版社
【时间】:2012
【页数】:458
【ISBN】:9787115296245
【SS码】:13239569

最新查询

内容简介

第1章 绪论

1.1 C++简史

1.1.1与C语言的关系

1.1.2 C++的优点

1.1.3 C++标准的发展历程

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.3 C++11新增的功能

1.4总结

1.5问与答

1.6作业

1.6.1 测验

1.6.2练习

第2章C+程序的组成部分

2.1 Hello World程序的组成部分

2.1.1预处理器编译指令#include

2.1.2程序的主体——main()

2.1.3返回值

2.2名称空间的概念

2.3 C++代码中的注释

2.4 C++函数

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和long long

3.2.5无符号整型unsigned short、unsigned int、 unsigned long和unsigned long long

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.4 C风格字符串

4.5 C++字符串:使用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按位右移运算符(>>)和左移运算符(<<)

5.3.12复合赋值运算符

5.3.13使用运算符sizeof确定变量占用的内存量

5.3.14运算符优先级

5.4总结

5.5问与答

5.6作业

5.6.1测验

5.6.2练习

第6章 控制程序流程

6.1使用if…else有条件地执行

6.1.1使用if…else进行条件编程

6.1.2有条件地执行多条语句

6.1.3嵌套if语句

6.1.4使用switchcase进行条件处理

6.1.5使用运算符?:进行条件处理

6.2在循环中执行代码

6.2.1不成熟的goto循环

6.2.2 while循环

6.2.3 do…while循环

6.2.4 for循环

6.3使用continue和break修改循环的行为

6.3.1不结束的循环——无限循环

6.3.2控制无限循环

6.4编写嵌套循环

6.4.1使用嵌套循环遍历多维数组

6.4.2使用嵌套循环计算斐波纳契数列

6.5总结

6.6问与答

6.7作业

6.7.1测验

6.7.2练习

第7章 使用函数组织代码

7.1为何需要函数

7.1.1函数原型是什么

7.1.2函数定义是什么

7.1.3函数调用和实参是什么

7.1.4编写接受多个参数的函数

7.1.5编写没有参数和返回值的函数

7.1.6带默认值的函数参数

7.1.7递归函数——调用自己的函数

7.1.8包含多条return语句的函数

7.2使用函数处理不同类型的数据

7.2.1函数重载

7.2.2将数组传递给函数

7.2.3按引用传递参数

7.3微处理器如何处理函数调用

7.3.1内联函数

7.3.2 lambda函数

7.4总结

7.5问与答

7.6作业

7.6.1测验

7.6.2练习

第8章 阐述指针和引用

8.1什么是指针

8.1.1声明指针

8.1.2使用引用运算符(&)获取变量的地址

8.1.3使用指针存储地址

8.1.4使用解除引用运算符(*)访问指向的数据

8.1.5将sizeof()用于指针的结果

8.2动态内存分配

8.2.1使用new和delete动态地分配和释放内存

8.2.2将递增和递减运算符(+++和--)用于指针的结果

8.2.3将关键字const用于指针

8.2.4将指针传递给函数

8.2.5数组和指针的类似之处

8.3使用指针时常犯的编程错误

8.3.1内存泄露

8.3.2指针指向无效的内存单元

8.3.3悬浮指针(也叫迷途或失控指针)

8.4指针编程最佳实践

8.4.1检查使用new发出的分配请求是否得到满足

8.5引用是什么

8.5.1是什么让引用很有用

8.5.2将关键字const用于引用

8.5.3按引用向函数传递参数

8.6总结

8.7问与答

8.8作业

8.8.1测验

8.8.2练习

第9章 类和对象

9.1类和对象

9.1.1声明类

9.1.2实例化对象

9.1.3使用句点运算符访问成员

9.1.4使用指针运算符(-﹥)访问成员

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.7 this指针

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.2 C++派生语法

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.1 C++运算符

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.3 C++类型转换运算符

13.3.1使用static cast

13.3.2使用dynamic_ cast和运行阶段类型识别

13.3.3使用reinterpret cast

13.3.4使用const cast

13.4 C++类型转换运算符存在的问题

13.5总结

13.6问与答

13.7作业

13.7.1测验

13.7.2练习

第14章 宏和模板简介

14.1预处理器与编译器

14.2使用#defiine定义常量

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.1 STL容器

15.1.1顺序容器

15.1.2关联容器

15.1.3选择正确的容器

15.1.4容器适配器

15.2 STL迭代器

15.3 STL算法

15.4使用迭代器在容器和算法之间交互

15.5 STL字符串类

15.6总结

15.7问与答

15.8作业

第16章STL string类

16.1为何需要字符串操作类

16.2使用 STL string类

16.2.1实例化和复制STL string

16.2.2访问std::string的字符内容

16.2.3拼接字符串

16.2.4在string中查找字符或子字符串

16.2.5截短STL string

16.2.6字符串反转

16.2.7字符串的大小写转换

16.3基于模板的STL string实现

16.4总结

16.5问与答

16.6作业

16.6.1测验

16.6.2练习

第17章STL动态数组类

17.1 std::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.4 STL deque类

17.5总结

17.6问与答

17.7作业

17.7.1测验

17.7.2练习

第18章STL list和forward_list

18.1 std::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.2 STL set和multiset的基本操作

19.2.1实例化std::set对象

19.2.2在set或multiset中插入元素

19.2.3在STL set或multiset中查找元素

19.2.4删除STL set或multiset中的元素

19.3使用STL set和multiset的优缺点

19.4总结

19.5问与答

19.6作业

19.6.1测验

19.6.2练习

第20章STL映射类

20.1 STL映射类简介

20.2 std::map和std::multimap的基本操作

20.2.1实例化std::map和std::multimap

20.2.2在STL map或multimap中

插入元素

20.2.3在STL map或multimap中

查找元素

20.2.4在STL multimap中查找元素

20.2.5删除STL map或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.1 lambda表达式是什么

22.2如何定义lambda表达式

22.3一元函数对应的lambda表达式

22.4一元谓词对应的lambda表达式

22.5通过捕获列表接受状态变量的lambda表达式

22.6 lambda表达式的通用语法

22.7二元函数对应的lambda表达式

22.8二元谓词对应的lambda表达式

22.9总结

22.10问与答

22.11作业

22.11.1测验

22.11.2练习

第23章STL算法

23.1什么是STL算法

23.2 STL算法的分类

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使用STL stack类

24.2.1实例化stack

24.2.2 stack的成员函数

24.2.3使用Push()和pop()在栈顶插入和删除元素

24.3使用STL queue类

24.3.1实例化queue

24.3.2 queue的成员函数

24.3.3使用push()在队尾插入以及使用PoP()从队首删除

24.4使用STL优先级队列

24.4.1实例化priority_queue类

24.4.2 priority_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.1 bitset类

25.2使用std::bitset及其成员

25.2.1 std:bitset的运算符

25.2.2 std::bitset的成员方法

25.3 vector〈bool〉

25.3.1实例化vector〈bool〉

25.3.2 vector〈bool〉的成员函数和运算符

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.3使用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.1 std::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.3 1 KB相当于多少字节

A.3十六进制

A.4不同进制之间的转换

A.4.1通用转换步骤

A.4.2从十进制转换为二进制

A.4.3从十进制转换为十六进制

附录BC++关键字

附录C运算符优先级

附录D答案

附录E ASCII码


书查询(www.shuchaxun.com)本网页唯一编码:
1f60bb6827abbd7a94c3c66b4231356f#4941ff9ec26b46330aee60d35bff1cf3#80561547#《21天学能C++--第7版》_13239569.zip