Logo

简介

在探索 C++ 的设计哲学并了解其为何对高性能和系统软件依然至关重要的同时,理解本课程的学习路线图和先决条件。

概念

简介

在探索 C++ 的设计哲学并了解其为何对高性能和系统软件依然至关重要的同时,理解本课程的学习路线图和先决条件。

尽管新语言不断涌现,C++ 依然是对速度、控制力和长期可靠性有要求的软件开发的基础。从游戏引擎、交易系统到操作系统、浏览器和嵌入式系统,C++ 驱动着性能和内存效率至关重要的基础设施。本课程将带你从基础语法迈向现代 C++ 实践。我们从编译模型和核心语言基础开始,逐步深入面向对象设计、STL、模板、文件处理、库、并发编程、性能工具以及测试。如果你正在思考如何开始学习 C++,本课程将为你提供一条从基础到高级主题的清晰路径。课程结束时,你将能够清晰地分析正确性、效率和架构,而不仅仅是让代码运行起来。

为什么 C++ 如今依然重要

C++ 之所以持续成为关键的行业技能,是因为其优势与高要求的生产环境高度契合。

  • 性能与控制: C++ 提供对内存和数据布局的精确控制,同时支持高效的编译型强大抽象。

  • 系统与基础设施: 操作系统、数据库、浏览器、机器人平台和实时系统都严重依赖 C++。

  • 跨平台可移植性: 各平台均有成熟的编译器和工具链,使 C++ 适用于多样化的硬件和操作系统。

  • 现代演进: 现代标准从 C++11 一路演进到 C++20,引入了更安全、更具表现力的新特性,包括智能指针、结构化绑定、constexpr、概念(concepts)以及改进的并发支持。

  • 互操作性: C++ 与 C 及底层系统 API 无缝集成,非常适合性能敏感组件。

  • 可迁移的深度: 掌握 C++ 能够深化你对内存、编译和性能的理解,这些技能几乎可以迁移到其他任何语言中。

关于本课程

本课程旨在帮助你超越语法层面,迈向严谨的工程思维。它为初学者提供明确的起点,并逐步引导你掌握更高级的 C++ 概念和生产实践。

你将建立起对 C++ 程序如何被编译、对象如何在内存中存在,以及资源所有权如何被安全管理的完整心智模型。我们强调现代 C++ 实践,包括基于 RAII 的设计、标准容器与算法、表达性强类型系统,以及更高层次的并发工具。

除本介绍外,每个模块均包含测验和练习环节,以确保概念的持续应用。目标不是死记硬背,而是实现清晰、正确且自信地编写可维护的 C++ 代码。

课程路线图

本课程分为三个渐进阶段,并通过三个动手项目加以强化,为你提供从 C++ 基础到高级主题的实用路径。

  • 第一阶段:基础(第 1–4 模块)
    你将从编译模型和核心语言基础入手:变量、类型、表达式、控制流、函数、作用域、头文件、内存基础,以及数组、指针和引用之间的关系。

  • 第二阶段:设计、数据与大型程序(第 5–9 模块)
    你将进入面向对象编程,学习构造函数与析构函数、拷贝与移动语义、继承与多态,以及运算符重载。
    随后掌握 STL、迭代器、算法、异常处理、模板、文件 I/O、程序结构、命名空间和库的使用。
    本阶段旨在培养构建清晰、模块化且可扩展的 C++ 系统所需的架构习惯。

  • 第三阶段:现代 C++ 与生产实践(第 10–13 模块)
    你将聚焦于高级语言特性和真实世界的工程工具:使用 enum class 实现强类型、lambda 表达式、现代错误处理工具如 std::optional 和 std::variant、使用 constexpr 的编译期编程、并发与异步模式、并行算法、性能测量、使用 Make 进行构建自动化、使用 gdb 调试,以及使用 assert 和 Catch2 进行测试。

项目

  • 项目 1: 强化基础语法、函数和控制流。

  • 项目 2: 强化面向对象设计、模块化和文件持久化。

  • 项目 3: 强化并发编程、性能推理和生产工具使用。

先决条件

在开始之前,请明确以下期望:

  • 逻辑基础: 你需要理解变量、循环、条件判断和函数等通用编程概念。

  • 无需先前 C++ 经验: 我们将从基本原理出发构建 C++ 知识。

  • 坚持练习: C++ 技能通过编写、编译和测试真实代码逐步提升。

  • 基本终端熟悉度: 后续模块会使用构建工具和调试器,因此熟悉命令行工作流程将大有裨益。

明确了这一路线图后,我们现在就可以开始学习 C++ 编译模型,并编写我们的第一个程序。

C++ 入门第一步