Skip to content

Latest commit

 

History

History
235 lines (148 loc) · 8.76 KB

00.md

File metadata and controls

235 lines (148 loc) · 8.76 KB

零、前言

大约

本节简要介绍作者、本书的内容、入门所需的技术技能,以及完成所有附带活动和练习所需的硬件和软件要求。

关于书

C++ 是使用最广泛的编程语言之一,应用于各种领域,从游戏到图形用户界面 ( GUI )编程甚至操作系统。如果你想扩大你的职业机会,掌握 C++ 的高级特性是关键。

这本书从高级的 C++ 概念开始,帮助您破译复杂的 C++ 类型系统,并了解编译的各个阶段如何将源代码转换为目标代码。然后,您将学习如何识别需要用来控制执行流程、捕获数据和传递数据的工具。通过创建小模型,您甚至可以发现如何使用高级 lambdas,并在 C++ 中捕获和表达常见的 API 设计模式。在后面的章节中,您将通过学习内存对齐、缓存访问和程序运行时间来探索优化代码的方法。最后一章将帮助您通过理解现代的 CPU 分支预测以及如何使代码缓存友好来最大化性能。

到这本书的最后,你将会发展出与其他 C++ 程序员不同的编程技能。

关于作者

Gazihan Alankus 拥有圣路易斯华盛顿大学计算机科学博士学位。目前,他是土耳其伊兹密尔经济大学的助理教授。他教授并从事游戏开发、移动应用开发和人机交互方面的研究。他是谷歌 Dart 的开发专家,在他 2019 年创立的公司 Gbot 中与学生一起开发 Flutter 应用。

Olena Lizina 是一名拥有 5 年 C++ 经验的软件开发人员。她拥有为一家国际产品公司开发监控和管理远程计算机系统的实用知识。在过去的 4 年里,她一直在为国际外包公司的汽车项目工作,以解决众所周知的汽车问题。她一直参与不同项目的复杂和高性能应用的开发,如人机界面、导航和传感器应用。

Rakesh Mane 在软件行业拥有超过 18 年的经验。他曾与来自印度、美国和新加坡等不同地区的熟练程序员合作。他主要从事 C++、Python、shell 脚本和数据库方面的工作。在业余时间,他喜欢听音乐和旅行。此外,他喜欢使用软件工具和代码玩、试验和破坏东西。

Vivek Nagarajan 是一名自学成才的程序员,他从上世纪 80 年代开始研究 8 位系统。他从事过大量的软件项目,拥有 14 年的 C++ 专业经验。除此之外,他多年来一直致力于各种各样的语言和框架。他是一个业余力量爱好者,自己动手做的爱好者,也是摩托车赛车手。他目前是一名独立的软件顾问。

Brian Price 在各种语言、项目和行业拥有超过 30 年的工作经验,其中包括超过 20 年的 C++ 经验。他从事电站模拟器、SCADA 系统和医疗设备的工作。他目前正在用 C++、CMake 和 Python 为下一代医疗设备制作软件。他喜欢用各种语言解谜和欧拉项目。

学习目标

本书结束时,您将能够:

  • 深入研究 C++ 的剖析和工作流程
  • 研究 C++ 中不同编码方法的优缺点
  • 测试、运行和调试您的程序
  • 将对象文件链接为动态库
  • 使用模板、SFINAE、constexpr if 表达式和变量模板
  • 将最佳实践应用于资源管理

观众

如果你曾在 C++ 工作过,但想学习如何充分利用这种语言,尤其是对于大型项目,这本书是为你准备的。必须对编程有一个大致的了解,并且了解如何使用编辑器在项目目录中生成代码文件。也推荐一些强类型语言的经验,比如 C 和 C++。

进场

这本快节奏的书旨在通过描述性的图形和挑战性的练习,快速教你概念。这本书将有“号召”,有关键的要点和最常见的陷阱来保持你的兴趣,同时将主题分成易于管理的部分。

硬件要求

为了获得最佳的学生体验,我们推荐以下硬件配置:

  • 任何带有 Windows、Linux 或 macOS 的入门级 PC/Mac 都足够了
  • 处理器:双核或同等处理器
  • 内存:4 GB 内存(首选 8 GB)
  • 存储:35 GB 可用空间

软件需求

您还需要提前安装以下软件:

  • 操作系统:Windows 7 SP1 32/64 位,Windows 8.1 32/64 位,或 Windows 10 32/64 位,Ubuntu 14.04 或更高版本,或 macOS Sierra 或更高版本
  • 浏览器:谷歌 Chrome 还是 Mozilla 火狐

安装和设置

在开始阅读本书之前,您需要安装本书中使用的以下库。您将在这里找到安装这些的步骤。

安装 CMake

我们将使用 CMake 版本 3.12.1 或更高版本。我们有两种安装选择。

选项 1:

如果您使用的是 Ubuntu 18.10,可以使用以下命令全局安装 CMake:

sudo apt install cmake

运行以下命令时:

cmake –version

您应该会看到以下输出:

cmake version 3.12.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).

如果您在这里看到的版本低于 3.12.1(例如 3.10),您应该使用以下说明在本地安装 CMake。

备选方案 2:

如果您使用的是旧的 Linux 版本,您可能会得到低于 3.12.1 的 CMake 版本。然后,您需要在本地安装它。使用以下命令:

wget \
https://github.com/Kitware/CMake/releases/download/v3.15.1/cmake-3.15.1-Linux-x86_64.sh
sh cmake-3.15.1-Linux-x86_64.sh

看到软件许可证后,输入 y 并按进入。当询问安装位置时,键入 y 并再次按回车键。这应该会将其安装到系统中的新文件夹中。

现在,我们将该文件夹添加到我们的路径中。键入以下内容。请注意,在本文档中,第一行有点太长,并且换行。您应该将其写成一行,如下所示:

echo "export PATH=\"$HOME/cmake-3.15.1-Linux-x86_64/bin:$PATH\"" >> .bash_profile
source .profile

现在,当您键入以下内容时:

cmake –version

您应该会看到以下输出:

cmake version 3.15.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).

3.15.1 是撰写本文档时的最新版本。由于它比 3.12.1 更新,这将满足我们的目的。

安装 Git

通过键入以下内容测试当前安装:

git --version

您应该会看到如下一行:

git version 2.17.1

如果改为看到下面一行,则需要安装git:

command 'git' not found

以下是如何在 Ubuntu 中安装git:

sudo apt install git

安装 g++

通过键入以下内容测试当前安装:

g++ --version

您应该会看到如下输出:

g++ (Ubuntu 7.4.0-1ubuntu1~18.04) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

如果未安装,请键入以下代码进行安装:

sudo apt install g++

安装忍者

通过键入以下内容测试当前安装:

ninja --version

您应该会看到如下输出:

1.8.2

如果未安装,请键入以下代码进行安装:

sudo apt install ninja-build

安装 Eclipse CDT 和 cmake4eclipse

安装 Eclipse CDT 有多种方法。为了获得最新的稳定版本,我们将使用官方安装程序。去这个网站下载 Linux 安装程序:https://www.eclipse.org/downloads/packages/installer

按照那里的说明,为 C/C++ 开发者安装Eclipse IDE。安装完成后,运行 Eclipse 可执行文件。如果没有更改默认配置,在终端中键入以下命令将运行它:

~/eclipse/cpp-2019-03/eclipse/eclipse

您将选择一个工作区文件夹,然后在 Eclipse 主窗口中会出现一个欢迎选项卡。

现在,我们将安装cmake4eclipse。一个简单的方法是去这个网站,把安装图标拖到 Eclipse 窗口:https://github.com/15knots/cmake4eclipse#installation。它会要求您重新启动 Eclipse,之后您就可以修改 CMake 项目来使用 Eclipse 了。

安装谷歌测试

我们会在系统中安装GoogleTest,系统也会安装其他依赖它的包。编写以下命令:

sudo apt install libgtest-dev google-mock

该命令为谷歌测试安装包含文件和源文件。现在,我们需要构建我们安装的源文件来创建谷歌测试库。为此,请运行以下命令:

cd /usr/src/gtest
sudo cmake CMakeLists.txt
sudo make
sudo cp *.a /usr/lib

安装代码包

将该类的代码包复制到C:/Code文件夹中。

附加资源

这本书的代码包也托管在 https://github.com/TrainingByPackt/Advanced-CPlusPlus 的 GitHub 上。

我们还有来自 https://github.com/PacktPublishing/丰富的书籍和视频目录的其他代码包。看看他们!