Skip to content

Latest commit

 

History

History
130 lines (78 loc) · 9.14 KB

File metadata and controls

130 lines (78 loc) · 9.14 KB

零、前言

C++ 已经使用了 30 年,在此期间,许多新的语言层出不穷,但 C++ 却经久不衰。 这本书背后的一个大问题是:为什么? 为什么使用 C++? 答案就在你面前的十章中,但作为一个搅局者,它是语言的灵活性和力量,以及丰富而广泛的标准库。

C++ 一直是一种强大的语言,让您可以直接访问内存,同时提供高级功能,如创建新类型(类)和覆盖操作符以满足您的需要。 然而,更现代的 C++ 标准增加了这一点,通过模板进行泛型编程,通过函数对象和 lambda 表达式进行函数式编程。 您可以根据需要使用这些功能中的任意数量;可以使用抽象接口指针编写事件驱动代码,也可以编写类似 C 语言的过程代码。

在本书中,我们将带您了解 2011 年的 C++ 标准的功能以及该语言提供的标准库。 本文通过简短的代码片段解释了如何使用这些功能,并且每章都有一个实际的示例来说明这些概念。 在本书的最后,您将了解该语言的所有功能以及 C++ 标准库可以实现的功能。 您将以初学者的身份开始这本书,然后在了解并准备好使用 C++ 的情况下读完这本书。

这本书涵盖了哪些内容

第 1 章,*从 C++*开始,解释了用于编写 C++ 应用的文件、文件依赖关系以及 C++ 项目管理的基础知识。

第 2 章了解语言功能,涵盖 C++ 语句和表达式、常量、变量、运算符,以及如何控制应用中的执行流。

第 3 章探索 C++ 类型,描述了 C++ 内置类型、聚合类型、类型别名、初始值设定项列表以及类型之间的转换。

第 4 章使用内存、数组和指针,介绍了如何在 C++ 应用中分配和使用内存,如何使用内置数组,C++ 引用的作用,以及如何使用 C++ 指针访问内存。

第 5 章使用函数解释了如何定义函数,如何使用可变数量的参数逐个引用和逐值传递参数,创建和使用指向函数的指针,以及定义模板函数和重载运算符。

第 6 章描述了如何通过类和类中使用的各种特殊函数定义新类型,如何将类实例化为对象并销毁它们,以及如何通过指针访问对象以及如何编写模板类。

第 7 章面向对象编程简介解释了继承和组合,以及使用指向对象的指针和引用如何影响类成员的访问级别,以及它们如何影响继承的成员。 本章还通过虚方法解释了多态性,并通过抽象类解释了继承编程。

第 8 章使用标准库容器介绍了所有的 C++ 标准库容器类,以及如何将它们与迭代器和标准算法一起使用,以便您可以操作容器中的数据。

第 9 章使用 Strings描述了标准 C++ String 类的功能,包括在数字数据和字符串之间进行转换、国际化字符串以及使用正则表达式搜索和操作字符串。

第 10 章诊断和调试解释了如何准备代码以提供诊断并使其能够被调试,如何突然或正常地终止应用,以及如何使用 C++ 异常。

这本书你需要什么?

这本书涵盖了 C++ 11 标准,以及相关的 C++ 标准库。 对于本书的大部分内容,任何与 C++ 11 兼容的编译器都是合适的。 这包括来自英特尔、ibm、Sun、苹果和微软的编译器,以及开源的 GCC 编译器。

本书使用 Visual C++ 2017 社区版,因为它是一个功能齐全的编译器和环境,并且可以免费下载。 这是作者的个人选择,但不应限制喜欢使用其他编译器的读者。 上一章中关于诊断和调试的某些部分描述了特定于 Microsoft 的功能,但这些部分有明确的标记。

这本书是写给谁的?

本书面向刚接触 C++ 的有经验的程序员。 读者应该了解高级语言的用途,以及模块化代码和控制执行流等基本概念。

公约

在本书中,您将发现许多区分不同类型信息的文本样式。 下面是这些风格的一些例子,并解释了它们的含义。

文本、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄中的代码字如下所示:“我们可以通过使用include指令包括其他上下文。”

代码块设置如下:

    class point
    {
    public:
        int x, y;
    };

当我们希望您注意代码块的特定部分时,相关行或项将以粗体显示:

    class point
    {
    public:
        int x, y;
        point(int _x, int _y) : x(_x), y(_y) {}
    };

任何命令行输入或输出都如下所示:

C:\> cl /EHsc test.cpp

新术语重要单词以粗体显示。 您在屏幕上看到的单词(例如,在菜单或对话框中)会出现在文本中,如下所示:“单击”下一步“按钮将转到下一个屏幕。”

Warnings or important notes appear in a box like this. Tips and tricks appear like this.

读者反馈

欢迎读者的反馈。 让我们知道你对这本书的看法-你喜欢什么或不喜欢什么。 读者反馈对我们很重要,因为它可以帮助我们开发出真正能让您获得最大收益的图书。 要向我们发送一般反馈,只需向feedback@packtpub.com发送电子邮件,并在邮件主题中提及书名。 如果有一个您擅长的主题,并且您有兴趣撰写或投稿一本书,请参阅我们的作者指南,网址为:www.Packtpub.com/Authors

客户支持

现在您已经成为 Packt 图书的拥有者,我们有很多东西可以帮助您从购买中获得最大价值。

下载示例代码

您可以从您的帐户http://www.packtpub.com下载本书的示例代码文件。 如果您在其他地方购买了本书,您可以访问http://www.packtpub.com/support并注册,以便将文件通过电子邮件直接发送给您。

您可以通过以下步骤下载代码文件:

  1. 使用您的电子邮件地址和密码登录或注册我们的网站。
  2. 将鼠标指针悬停在顶部的支持选项卡上。
  3. 单击 Code Downloads&Errata(代码下载和勘误表)。
  4. 在搜索框中输入图书的名称。
  5. 选择要为其下载代码文件的图书。
  6. 从您购买本书的下拉菜单中选择。
  7. 单击 Code Download(代码下载)。

下载文件后,请确保使用以下最新版本解压缩或解压缩该文件夹:

  • WinRar/7-用于 Windows 的 Zip
  • 适用于 Mac 的 Zipeg/iZip/UnRarX
  • Linux 版 7-Zip/PeaZip

该书的代码包也托管在 giHub 的https://github.com/PacktPublishing/Beginning-Cpp-Programming上。 我们还在https://github.com/PacktPublishing/上提供了我们丰富的图书和视频目录中的其他代码包。 看看他们!

下载本书的彩色图片

我们还为您提供了一个 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。 彩色图像将帮助您更好地了解输出中的更改。 您可以从https://www.packtpub.com/sites/default/files/downloads/BeginningCppProgramming_ColorImages.pdf下载此文件。

错误 / 排错 / 勘误表

虽然我们已经竭尽全力确保内容的准确性,但错误还是会发生。 如果您在我们的一本书中发现错误--可能是文本或代码中的错误--如果您能向我们报告,我们将不胜感激。 通过这样做,您可以将其他读者从挫折中解救出来,并帮助我们改进本书的后续版本。 如果您发现任何勘误表,请访问http://www.packtpub.com/submit-errata进行报告,选择您的图书,单击勘误表提交表链接,然后输入勘误表的详细信息。 一旦您的勘误表被核实,您提交的勘误表将被接受,勘误表将被上传到我们的网站或添加到该书目勘误表部分下的任何现有勘误表列表中。

要查看之前提交的勘误表,请转到https://www.packtpub.com/books/content/support,并在搜索字段中输入图书名称。 所需信息将显示在勘误表部分下。

海盗行为 / 剽窃 / 著作权侵害 / 非法翻印

在互联网上盗版版权材料是所有媒体持续存在的问题。 在 Packt,我们非常重视版权和许可证的保护。 如果您在互联网上发现任何形式的非法复制我们的作品,请立即提供我们的位置、地址或网站名称,以便我们采取补救措施。

请通过copyright@packtpub.com联系我们,并附上疑似盗版材料的链接。

我们感谢您在保护我们的作者方面的帮助,以及我们为您提供有价值内容的能力。

问题 / 不确定 / 异议 / 难题

如果您对本书的任何方面有任何问题,可以通过questions@packtpub.com与我们联系,我们将尽最大努力解决问题。