C++入门经典(第4版)

副标题:无

作   者:(美)霍尔顿(Horton,I.)  著

分类号:

ISBN:9787302406280

微信扫一扫,移动浏览光盘

简介

《C++入门经典(第4版)》是一本C++初学者指南,讨论了适合初学者的C++功能子集,其语法对应于C++ 14标准。本书的内容适合于任何开发环境,可以在任何操作系统或程序开发系统中使用。读者不需要有任何编程知识。本书中的所有语言特性都用具体的例子来说明,通过每章最后的练习还可以测试自己对所学知识的掌握情况。文中的示例和习题答案都可以从网上下载,学完本书后,还可以试着完成一个可下载的、更实际的项目。本书介绍了C++标准库的元素,标准库提供对本书讨论的语法的基本支持。标准模板库(STL)讨论得不多,只介绍并应用了标准模板库中几个对现代C++理念非常重要的元素。主要内容◆ 使用C++基本数据类型进行计算◆ 使用循环、选择、决策等建立程序的逻辑◆ 使用数组、矢量和字符串◆ 使用原指针和智能指针◆ 使用函数编程,处理程序文件和预处理指令◆ 使用类和类操作定义自己的数据类型◆ 使用异常警示并处理错误◆ 定义、使用函数模板和类模板◆ 用C++处理文件输入输出

目录

第1章基本概念
1.1现代C++
1.2C++程序概念
1.2.1注释和空白
1.2.2预处理指令和头文件
1.2.3函数
1.2.4语句
1.2.5数据输入输出
1.2.6return语句
1.2.7名称空间
1.2.8名称和关键字
1.3类和对象
1.4模板
1.5程序文件
1.6标准库
1.7代码的表示样式
1.8创建可执行文件
1.9表示数字
1.9.1二进制数
1.9.2十六进制数
1.9.3负的二进制数
1.9.4八进制数
1.9.5Big-Endian和Little-Endian系统
1.9.6浮点数
1.10表示字符
1.10.1ASCII码
1.10.2UCS和Unicode
1.11C++源字符
1.11.1三字符序列
1.11.2转义序列
1.12过程化编程方法和面向
对象编程方法
1.13本章小结
1.14练习
第2章基本数据类型
2.1变量、数据和数据类型
2.1.1定义整型变量
2.1.2定义有固定值的变量
2.2整型字面量
2.2.1十进制整型字面量
2.2.2十六进制的整型字面量
2.2.3八进制的整型字面量
2.2.4二进制的整型字面量
2.3整数的计算
2.4op=赋值运算符
2.5using声明和指令
2.6sizeof运算符
2.7整数的递增和递减
2.8定义浮点变量
2.8.1浮点字面量
2.8.2浮点数的计算
2.8.3缺点
2.8.4无效的浮点结果
2.9数值函数
2.10流输出的格式化
2.11混合的表达式和类型转换
2.11.1显式类型转换
2.11.2老式的强制转换
2.12确定数值的上下限
2.13使用字符变量
2.13.1使用Unicode字符
2.13.2auto关键字
2.13.3lvalue和rvalue
2.14本章小结
2.15练习
第3章处理基本数据类型
3.1运算符的优先级和相关性
3.2按位运算符
3.2.1移位运算符
3.2.2使用按位与运算符
3.2.3使用按位或运算符
3.2.4使用按位异或运算符
3.3枚举数据类型
3.4数据类型的同义词
3.5变量的生存期
3.5.1定位变量的定义
3.5.2全局变量
3.5.3静态变量
3.5.4外部变量
3.6本章小结
3.7练习
第4章决策
4.1比较数据值
4.1.1应用比较运算符
4.1.2比较浮点数值
4.2if语句
4.2.1嵌套的if语句
4.2.2不依赖编码的字符处理
4.3if-else语句
4.3.1嵌套的if-else语句
4.3.2理解嵌套的if语句
4.4逻辑运算符
4.4.1逻辑与运算符
4.4.2逻辑或运算符
4.4.3逻辑非运算符
4.5条件运算符
4.6switch语句
4.7无条件分支
4.8语句块和变量作用域
4.9本章小结
4.10练习
第5章数组和循环
5.1数据数组
5.2理解循环
5.3for循环
5.3.1避免幻数
5.3.2用初始化列表定义数组的大小
5.3.3确定数组的大小
5.3.4用浮点数值控制for循环
5.3.5使用更复杂的循环控制表达式
5.3.6逗号运算符
5.3.7基于区域的for循环
5.4while循环
5.5do-while循环
5.6嵌套的循环
5.7跳过循环迭代
5.8循环的中断
5.9字符数组
5.10多维数组
5.10.1初始化多维数组
5.10.2在默认情况下设置维数
5.10.3多维字符数组
5.11数组的替代品
5.11.1使用array容器
5.11.2使用std::vector容器
5.11.3矢量的容量和大小
5.11.4删除矢量容器中的元素
5.12本章小结
5.13练习
第6章指针和引用
6.1什么是指针
6.1.1地址运算符
6.1.2间接运算符
6.1.3为什么使用指针
6.2char类型的指针
6.3常量指针和指向常量的指针
6.4指针和数组
6.4.1指针的算术运算
6.4.2计算两个指针之间的差
6.4.3使用数组名的指针表示法
6.5动态内存分配
6.5.1栈和堆
6.5.2运算符new和delete
6.5.3数组的动态内存分配
6.5.4通过指针选择成员
6.6动态内存分配的危险
6.6.1内存泄漏
6.6.2自由存储区的碎片
6.7原指针和智能指针
6.7.1使用unique_ptr指针
6.7.2使用shared_ptr指针
6.7.3比较shared_ptr对象
6.7.4weak_ptr指针
6.8理解引用
6.8.1定义左值引用
6.8.2在基于区域的for循环中使用引用变量
6.8.3定义右值引用
6.9本章小结
6.10练习
第7章操作字符串
7.1更好的string类型
7.1.1定义string对象
7.1.2string对象的操作
7.1.3访问字符串中的字符
7.1.4访问子字符串
7.1.5比较字符串
7.1.6搜索字符串
7.1.7修改字符串
7.2国际字符串
7.3包含Unicode字符串的对象
7.4原字符串字面量
7.5本章小结
7.6练习
第8章定义函数
8.1程序的分解
8.1.1类中的函数
8.1.2函数的特征
8.2定义函数
8.2.1函数体
8.2.2函数声明
8.3给函数传送参数
8.3.1按值传送机制
8.3.2按引用传送
8.3.3main()的参数
8.4默认的参数值
8.5从函数中返回值
8.5.1返回指针
8.5.2返回引用
8.6内联函数
8.7静态变量
8.8函数的重载
8.8.1重载和指针参数
8.8.2重载和引用参数
8.8.3重载和const参数
8.8.4重载和默认参数值
8.9函数模板
8.9.1创建函数模板的实例
8.9.2显式指定模板参数
8.9.3函数模板的特例
8.9.4函数模板和重载
8.9.5带有多个参数的函数模板
8.9.6非类型的模板参数
8.10拖尾返回类型
8.11函数指针
8.12递归
8.12.1应用递归
8.12.2Quicksort算法
8.12.3main()函数
8.12.4extract_words()函数
8.12.5swap()函数
8.12.6sort()函数
8.12.7max_word_length()函数
8.12.8show_words()函数
8.13本章小结
8.14练习
第9章lambda表达式
9.1lambda表达式简介
9.2定义lambda表达式
9.3lambda表达式的命名
9.4把lambda表达式传递给函数
9.4.1接受lambda表达式变元的函数模板
9.4.2lambda变元的函数参数类型
9.4.3使用std::function模板类型
9.5捕获子句
9.6在模板中使用lambda表达式
9.7lambda表达式中的递归
9.8本章小结
9.9练习
第10章程序文件和预处理指令
10.1理解转换单元
10.1.1"一个定义"规则
10.1.2程序文件和链接
10.1.3确定名称的链接属性
10.1.4外部名称
10.1.5具有外部链接属性的
const变量
10.2预处理源代码
10.3定义预处理标识符
10.4包含头文件
10.5名称空间
10.5.1全局名称空间
10.5.2定义名称空间
10.5.3应用using声明
10.5.4函数和名称空间
10.5.5未命名的名称空间
10.5.6名称空间的别名
10.5.7嵌套的名称空间
10.6逻辑预处理指令
10.6.1逻辑#if指令
10.6.2测试指定标识符的值
10.6.3多个代码选择
10.6.4标准的预处理宏
10.7调试方法
10.7.1集成调试器
10.7.2调试中的预处理指令
10.7.3使用assert宏
10.7.4关闭断言机制
10.8静态断言
10.9本章小结
10.10练习
第11章定义自己的数据类型
11.1类和面向对象编程
11.1.1封装
11.1.2继承
11.1.3多态性
11.1.4术语
11.2定义类
11.3构造函数
11.3.1在类的外部定义构造函数
11.3.2默认构造函数的参数值
11.3.3在构造函数中使用初始化列表
11.3.4使用explicit关键字
11.3.5委托构造函数
11.3.6默认的副本构造函数
11.4访问私有类成员
11.5友元
11.5.1类的友元函数
11.5.2友元类
11.6this指针
11.7const对象和const函数成员
11.8类的对象数组
11.9类对象的大小
11.10类的静态成员
11.10.1静态数据成员
11.10.2类的静态函数成员
11.11析构函数
11.12类对象的指针和引用
11.13将指针作为类的成员
11.13.1定义Package类
11.13.2定义TruckLoad类
11.13.3实现TruckLoad类
11.14嵌套类
11.15本章小结
11.16练习
第12章运算符重载
12.1为类实现运算符
12.1.1运算符重载
12.1.2可以重载的运算符
12.1.3实现重载运算符
12.1.4全局运算符函数
12.1.5提供对运算符的全部支持
12.1.6在类中实现所有的比较运算符
12.2运算符函数术语
12.3默认的类成员
12.3.1定义析构函数
12.3.2何时定义副本构造函数
12.3.3实现赋值运算符
12.3.4实现移动操作
12.4重载算术运算符
12.4.1改进输出操作
12.4.2根据一个运算符实现另一个运算符
12.5重载下标运算符
12.6重载类型转换
12.7重载递增和递减运算符
12.8函数对象
12.9本章小结
12.10练习
第13章继承
13.1类和面向对象编程
13.2类的继承
13.2.1继承和聚合
13.2.2派生类
13.3把类的成员声明为protected
13.4派生类成员的访问级别
13.4.1在类层次结构中使用访问指定符
13.4.2改变继承成员的访问指定符
13.5派生类中的构造函数操作

13.5.1派生类中的副本构造函数
13.5.2派生类中的默认构造函数
13.5.3继承构造函数
13.6继承中的析构函数
13.7重复的成员名
13.8重复的函数成员名
13.9多重继承
13.9.1多个基类
13.9.2继承成员的模糊性
13.9.3重复的继承
13.9.4虚基类
13.10在相关的类类型之间转换
13.11本章小结
13.12练习
第14章多态性
14.1理解多态性
14.1.1使用基类指针
14.1.2调用继承的函数
14.1.3虚函数
14.1.4虚函数中的默认参数值
14.1.5通过智能指针调用虚函数
14.1.6通过引用调用虚函数
14.1.7调用虚函数的基类版本
14.1.8在指针和类对象之间转换
14.1.9动态强制转换
14.1.10转换引用
14.1.11确定多态类型
14.2多态性的成本
14.3纯虚函数
14.3.1抽象类
14.3.2间接的抽象基类
14.4通过指针释放对象
14.5本章小结
14.6练习
第15章运行时错误和异常
15.1处理错误
15.2理解异常
15.2.1抛出异常
15.2.2异常处理过程
15.2.3未处理的异常
15.2.4导致抛出异常的代码
15.2.5嵌套的try块
15.3用类对象作为异常
15.3.1匹配Catch处理程序和异常
15.3.2用基类处理程序捕获派生类异常
15.3.3重新抛出异常
15.3.4捕获所有的异常
15.4抛出异常的函数
15.4.1函数try块
15.4.2不抛出异常的函数
15.4.3构造函数try块
15.4.4异常和析构函数
15.5标准库异常
15.5.1异常类的定义
15.5.2使用标准异常
15.6本章小结
15.7练习
第16章类模板
16.1理解类模板
16.2定义类模板
16.2.1模板参数
16.2.2简单的类模板
16.2.3定义类模板的函数成员
16.3创建类模板的实例
16.4类模板的静态成员
16.5非类型的类模板参数
16.5.1带有非类型参数的函数成员的模板
16.5.2非类型参数的变元
16.5.3把指针和数组用作非类型参数
16.6模板参数的默认值
16.7模板的显式实例化
16.8特殊情形
16.8.1在类模板中使用
static_assert()
16.8.2定义类模板特化
16.8.3部分模板特化
16.8.4从多个部分特化中选择
16.9类模板的友元
16.10带有嵌套类的类模板
16.11本章小结
16.12练习
第17章文件输入与输出

 

 

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

C++入门经典(第4版)
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon