编程导师、畅销书作者《C语言入门经典(第5版)》作者Ivor Horton经典作品
第4版全新包装隆重上市,C++初学者必备指南
全面更新至C++14
超高助你快速掌握C++语言
提升您的编程技能;完善您的职业生涯
书中的所有语言特性都用具体的例子来说明,通过每章最后的练习还可以测试自己对所学知识的掌握情况。文中的示例和习题答案都可以从网上下载,学完本书后,还可以试着完成一个可下载的、更实际的项目。
Ivor Horton经典作品:
《C++入门经典(第4版)》是一本C++初学者指南,讨论了适合初学者的C++功能子集,其语法对应于C++ 14标准。本书的内容适合于任何开发环境,可以在任何操作系统或程序开发系统中使用。读者不需要有任何编程知识。
《C++入门经典(第4版)》中的所有语言特性都用具体的例子来说明,通过每章最后的练习还可以测试自己对所学知识的掌握情况。文中的示例和习题答案都可以从网上下载,学完 《C++入门经典(第4版)》后,还可以试着完成一个可下载的、更实际的项目。
《C++入门经典(第4版)》介绍了C++标准库的元素,标准库提供对本书讨论的语法的基本支持。标准模板库(STL)讨论得不多,只介绍并应用了标准模板库中几个对现代C++理念非常重要的元素。
主要内容
◆ 使用C++基本数据类型进行计算
◆ 使用循环、选择、决策等建立程序的逻辑
◆ 使用数组、矢量和字符串
◆ 使用原指针和智能指针
◆ 使用函数编程,处理程序文件和预处理指令
◆ 使用类和类操作定义自己的数据类型
◆ 使用异常警示并处理错误
◆ 定义、使用函数模板和类模板
◆ 用C++处理文件输入输出
Ivor Horton,是世界著名计算机图书作家,独立顾问,帮助无数程序员步入编程殿堂。他曾在IBM工作多年,以优异成绩拥有数学学士学位。他的资历包括:使用大多数语言(如在多种机器上使用汇编语言和高级语言)进行编程,实时编程,设计和实现实时闭环工业控制系统。Horton拥有丰富的面向工程师和科学家的编程教学经验(教学内容包括C、C++、Fortran、PL/1、APL等)。同时,他还是机械、加工和电子CAD系统、机械CAM系统和DNC/CNC系统方面的专家。
第1章 基本概念 1
1.1 现代C++ 1
1.2 C++程序概念 2
1.2.1 注释和空白 2
1.2.2 预处理指令和头文件 3
1.2.3 函数 3
1.2.4 语句 4
1.2.5 数据输入输出 4
1.2.6 return语句 5
1.2.7 名称空间 5
1.2.8 名称和关键字 6
1.3 类和对象 6
1.4 模板 7
1.5 程序文件 7
1.6 标准库 7
1.7 代码的表示样式 7
1.8 创建可执行文件 8
1.9 表示数字 9
1.9.1 二进制数 9
1.9.2 十六进制数 11
1.9.3 负的二进制数 12
1.9.4 八进制数 14
1.9.5 Big-Endian和Little-Endian系统 14
1.9.6 浮点数 15
1.10 表示字符 16
1.10.1 ASCII 码 16
1.10.2 UCS和Unicode 17
1.11 C++源字符 17
1.11.1 三字符序列 18
1.11.2 转义序列 18
1.12 过程化编程方法和面向
对象编程方法 20
1.13 本章小结 21
1.14 练习 22
第2章 基本数据类型 23
2.1 变量、数据和数据类型 23
2.1.1 定义整型变量 24
2.1.2 定义有固定值的变量 26
2.2 整型字面量 26
2.2.1 十进制整型字面量 27
2.2.2 十六进制的整型字面量 27
2.2.3 八进制的整型字面量 27
2.2.4 二进制的整型字面量 28
2.3 整数的计算 28
2.4 op=赋值运算符 33
2.5 using声明和指令 34
2.6 sizeof运算符 34
2.7 整数的递增和递减 35
2.8 定义浮点变量 37
2.8.1 浮点字面量 38
2.8.2 浮点数的计算 38
2.8.3 缺点 38
2.8.4 无效的浮点结果 39
2.9 数值函数 40
2.10 流输出的格式化 43
2.11 混合的表达式和类型转换 45
2.11.1 显式类型转换 46
2.11.2 老式的强制转换 48
2.12 确定数值的上下限 49
2.13 使用字符变量 50
2.13.1 使用Unicode字符 51
2.13.2 auto关键字 52
2.13.3 lvalue和rvalue 52
2.14 本章小结 53
2.15 练习 54
第3章 处理基本数据类型 55
3.1 运算符的优先级和相关性 55
3.2 按位运算符 57
3.2.1 移位运算符 58
3.2.2 使用按位与运算符 60
3.2.3 使用按位或运算符 61
3.2.4 使用按位异或运算符 63
3.3 枚举数据类型 67
3.4 数据类型的同义词 70
3.5 变量的生存期 70
3.5.1 定位变量的定义 71
3.5.2 全局变量 71
3.5.3 静态变量 74
3.5.4 外部变量 75
3.6 本章小结 75
3.7 练习 76
第4章 决策 77
4.1 比较数据值 77
4.1.1 应用比较运算符 78
4.1.2 比较浮点数值 79
4.2 if语句 80
4.2.1 嵌套的if语句 82
4.2.2 不依赖编码的字符处理 84
4.3 if-else语句 85
4.3.1 嵌套的if-else语句 87
4.3.2 理解嵌套的if语句 88
4.4 逻辑运算符 89
4.4.1 逻辑与运算符 90
4.4.2 逻辑或运算符 90
4.4.3 逻辑非运算符 91
4.5 条件运算符 92
4.6 switch语句 94
4.7 无条件分支 98
4.8 语句块和变量作用域 99
4.9 本章小结 100
4.10 练习 100
第5章 数组和循环 103
5.1 数据数组 103
5.2 理解循环 105
5.3 for循环 106
5.3.1 避免幻数 107
5.3.2 用初始化列表定义数组的大小 109
5.3.3 确定数组的大小 109
5.3.4 用浮点数值控制for循环 110
5.3.5 使用更复杂的循环控制表达式 112
5.3.6 逗号运算符 113
5.3.7 基于区域的for循环 114
5.4 while循环 115
5.5 do-while循环 119
5.6 嵌套的循环 120
5.7 跳过循环迭代 123
5.8 循环的中断 125
5.9 字符数组 128
5.10 多维数组 131
5.10.1 初始化多维数组 134
5.10.2 在默认情况下设置维数 135
5.10.3 多维字符数组 136
5.11 数组的替代品 137
5.11.1 使用array容器 138
5.11.2 使用std::vector容器 142
5.11.3 矢量的容量和大小 143
5.11.4 删除矢量容器中的元素 145
5.12 本章小结 145
5.13 练习 146
第6章 指针和引用 149
6.1 什么是指针 149
6.1.1 地址运算符 151
6.1.2 间接运算符 152
6.1.3 为什么使用指针 153
6.2 char类型的指针 154
6.3 常量指针和指向常量的指针 158
6.4 指针和数组 159
6.4.1 指针的算术运算 160
6.4.2 计算两个指针之间的差 162
6.4.3 使用数组名的指针表示法 162
6.5 动态内存分配 165
6.5.1 栈和堆 165
6.5.2 运算符new和delete 166
6.5.3 数组的动态内存分配 167
6.5.4 通过指针选择成员 169
6.6 动态内存分配的危险 169
6.6.1 内存泄漏 169
......
欢迎使用《C++入门经典(第4版)》。本书修订并更新了上一版(Beginning ANSI C++)。自上一版出版以来,C++语言有了很大的扩展和改进,但不太可能把C++的所有内容压缩到一本书中。本书提供的C++语言基础知识和标准库功能,足以让读者编写自己的C++应用程序。掌握了本书介绍的知识,读者应能毫无困难地扩展C++专业知识的深度和广度。C++要比许多人想象的更容易理解。本书不需要读者具备任何编程知识。如果你非常渴望学习,并具备逻辑思考的能力,掌握C++就会比想象的更容易。开发C++技巧,学习数百万人已在使用的语言,掌握C++技能,它提供了在几乎任何环境下开发应用程序的能力。
本书的C++语言对应最新的ISO标准,一般称为C++ 14。C++ 14对以前的标准C++ 11进行了较小的扩展,所以本书的内容大都不专用于C++ 14。本书的所有示例都可以使用目前遵循C++ 11的编译器来编译和执行。
使用本书
要通过本书学习C++,需要一个遵循C++ 11标准的编译器和一个适合编写程序代码的文本编辑器。目前,有几个编译器兼容C++ 11,其中一些是免费的。
GNU Project生产的GCC编译器全面支持C++ 11,是一个开源产品,可免费下载。安装GCC并将它与合适的编辑器一起使用,对新手而言略有难度。安装GCC和合适编译器的一种简单方法是,从http://www.codeblocks.org上下载Code::Blocks。Code::Blocks是Linux、Apple Mac OS X和Microsoft Windows的一个免费IDE,它允许使用几个编译器(包括用于GCC、Clang和open Watcom的编译器)开发程序。这表示,安装Code::Blocks会获得C、C++和Fortran的支持。
另一种方法是使用在Microsoft Windows下运行的Microsoft Visual C++,它不仅完全兼容C++ 11,而且已经安装好了。其免费版本是Microsoft Visual Studio 2013 Express。编写本书时,它可以编译本书的大多数示例,最终应能编译所有示例。Microsoft Visual C++可以从http://www.microsoft.com/en-us/download/details.aspx?id=43733上下载。与GCC相比,Microsoft Visual C++编译器的限制多一些,但根据它对C++ 11的支持力度,这是一个专业的编译器,还支持其他语言,例如C#和Basic。当然,也可以安装这两个编辑器。还有其他支持C++ 11的编辑器,在网上搜索会很快找到它们。
本书的内容循序渐进,所以读者应从头开始一直阅读到最后。但是,没有人能仅从一本书中获得所有的编程技巧。本书仅介绍如何使用C++编程,读者应自己输入所有的例子,而不是从下载文件中复制它们,再编译和执行输入的代码,这似乎很麻烦,但输入C++语句可以帮助理解C++,特别是觉得某些地方很难掌握时,自己输入代码就显得非常有帮助。如果例子不工作,不要直接从书中查找原因,而应在自己输入的例子代码中找原因,这是编写C++代码时必须做的一个工作。
犯错误也是学习过程中不可避免的,练习应提供大量犯错误的机会,最好自己编几个练习题。如果不确定如何编写代码,应翻看前面的内容。犯的错误越多,对C++的功能和错误的原因认识得就越深刻。读者应完成所有的练习,记住不要看答案,直到肯定不能自己解决问题为止。许多练习都涉及某章内容的一个直接应用,换言之,它们仅是一种实践,但也有一些练习需要多动脑子,甚至需要一点灵感。
希望每个人都能成功驾驭C++。
—Ivor Horton
坦白讲,这本书对于想要快速掌握C++技能的朋友来说,绝对是物超所值。它以一种非常实用主义的方式来呈现C++,强调的是“能用”,而不是仅仅停留在理论的堆砌。作者在讲解每一个知识点的时候,都会思考这个知识点在实际编程中有何应用,然后通过大量的代码实例来展示。我尤其喜欢书中关于“STL(标准模板库)”的讲解。它不仅仅是罗列出各种容器和算法,而是通过生动的例子,展示了如何利用STL来高效地解决实际问题,比如如何使用vector来存储动态数组,如何使用map来构建键值对,以及如何利用sort算法对数据进行排序。 这本书的另一个亮点是它对于调试技巧的介绍。很多时候,我们写的代码会出现各种各样的问题,学会如何有效地找出并修复这些错误,是程序员必备的技能。书中花了不少篇幅来介绍常用的调试工具和方法,比如如何设置断点、如何单步执行、如何查看变量的值等等。这些内容对于我这种初学者来说,简直是救命稻草,让我不再害怕遇到bug,而是能够自信地去解决它们。
评分我原本以为,一本“入门”级的C++书籍,最多也就是教你一些基础的语法和数据结构,但这本书显然超越了我的预期。它在教授C++语言本身的同时,还在潜移默化地传递着良好的编程习惯和思维方式。我非常赞赏书中对于“代码风格”的强调,比如如何编写可读性强的代码,如何进行有效的命名,以及如何编写清晰的注释。这些细节虽然看似微不足道,但对于一个初学者来说,却是养成良好编程习惯的基石。 此外,书中还涉及了对一些常见算法的介绍,并展示了如何在C++中实现它们。比如,我学到了如何用链表来实现动态数据结构,如何用栈和队列来解决一些典型的遍历问题。这些算法的讲解,并不是孤立的,而是与前面介绍的数据结构紧密结合,让我能够更好地理解它们的应用场景。我特别喜欢书中关于“递归”的讲解,通过一些经典的例子,比如斐波那契数列和汉诺塔,让我逐渐理解了递归的精髓,并且能够自己尝试编写递归函数。这本书让我明白,学习C++,不仅仅是学习一门语言,更是在培养一种解决问题的能力。
评分这本书简直就是我C++学习路上的定海神针!作为一名完全的编程新手,我对C++那种敬畏又好奇的心情,这本书都妥帖地照顾到了。它并没有上来就扔给我一堆晦涩的概念和复杂的语法,而是循序渐进,从最基础的“你好,世界!”开始,一点点地揭开C++的面纱。我特别喜欢它那种“先知其然,再知其所以然”的讲解方式。比如,讲到变量的时候,它不仅告诉你怎么声明和使用,还会用生动的比喻来解释它们在内存中的作用,让我觉得编程不再是枯燥的代码堆砌,而是有实际意义的操作。 更让我惊喜的是,它不仅仅是罗列知识点,而是通过大量的实例,将理论知识转化为可执行的代码。每一个概念的引入,都伴随着清晰的示例代码,并且对代码的每一部分都进行了详尽的注释。这对于我这种喜欢动手实践的人来说,简直是福音。我可以通过运行这些代码,直观地看到结果,然后尝试修改参数,观察变化,从而加深理解。书中那些练习题也是精心设计的,难度梯度合理,既不会让人望而却步,又能有效地巩固所学。我常常在完成一个章节后,花上好一段时间去钻研那些练习题,享受那种“啊,原来是这样!”的顿悟时刻。
评分说实话,在拿到这本书之前,我对C++的印象就是“难学”、“门槛高”。但这本书彻底改变了我的看法。作者的语言风格非常亲切,就像一位经验丰富的老师,耐心细致地解答你可能遇到的每一个困惑。即使是一些初学者容易混淆的概念,比如指针和引用,书中也用非常形象的比喻和清晰的图示来解释,让我茅塞顿开。我印象最深刻的是讲到面向对象编程的部分,它没有一开始就抛出抽象的类和对象,而是从现实生活中的例子出发,比如“汽车”可以看作一个对象,它有颜色、品牌(属性)和启动、加速(方法),然后逐步引出C++中的类、对象、继承、多态等概念。这种由浅入深的讲解方式,让我能够轻松地建立起对面向对象思想的理解,并且知道如何在C++中实践它。 这本书的内容组织也非常合理,每个章节都像一个独立的模块,但又与前后章节紧密相连,形成一个完整的知识体系。它不仅仅停留在语法层面,还开始探讨一些更深层次的设计理念和编程技巧。我尤其喜欢它在介绍某些高级特性时,会穿插一些“提示”和“陷阱”,提醒我们开发者在实际编程中需要注意的地方,避免走弯路。这让我感觉作者不仅仅是想把知识传授给我,更是希望我能成为一名优秀的C++程序员。
评分这本C++入门经典,我只能说,它真的“经典”!它并非那种枯燥乏味的技术手册,而是充满了作者对编程的热情和对读者的关怀。我特别欣赏它在讲解一些复杂概念时,那种深入浅出的能力。比如,它在引入“模板”这个概念的时候,并没有直接给出抽象的模板定义,而是先从解决“函数重载”的繁琐性入手,然后一步步引导读者理解模板的必要性和强大之处。通过模拟一个泛型函数的设计过程,让我深刻体会到了模板的灵活性和效率。 更让我惊喜的是,这本书还在一定程度上触及了C++的一些高级特性,比如内存管理、异常处理等。虽然不是深入探讨,但它已经为我打开了认识C++更广阔世界的大门。它让我明白,C++不仅仅是编写简单的程序,它还涉及到底层的机制和更复杂的工程实践。我记得书中有一个关于“RAII(Resource Acquisition Is Initialization)”的讲解,用一个非常巧妙的例子说明了如何利用对象的生命周期来自动管理资源,让我对C++的内存管理有了更清晰的认识。
评分书还行,就是灰尘太多,内容还没看,看后在评论!
评分物流果然很快,经典书籍,纸质都很好!正版!
评分快递很快,书本很新,适合新手入门全面学习,中意已久,现在入手50左右超级便宜!!!
评分囤货进行时,基本没有毛病,所以就通用评论了
评分?不错,简单翻了一下,还没来得及细看
评分书还行,就是灰尘太多,内容还没看,看后在评论!
评分最近太忙了,确认晚了,东西是很好的,呵呵,谢了。
评分书很厚,字迹清晰。内容貌似有点复杂,就是不知道能不能看懂。慢慢学吧
评分嗯。与介绍的很符合。质量也很不错
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.teaonline.club All Rights Reserved. 图书大百科 版权所有