0Pricing
C++ Academy icon

C++ Academy

C_PLUS_PLUSSystemsBackendGamesDataAiSecurityBeginnerCloudDatabaseMobileEnterpriseDesktopCryptoNetwork

在 C++ Programming Academy 学习 C++,提升你的软件开发技能。

🤖 AI 驱动📚 51 门课程👥 10万+ 学习者⭐ 4.9 分
课程概览

C++ 仍然是性能至关重要的编程语言

C++ 驱动着操作系统、游戏引擎、编译器、嵌入式固件和高频交易系统。它让你能直接控制内存和硬件,同时提供丰富的标准库和现代语言特性——从智能指针到协程——这些特性在 C++11 到 C++20 中逐步引入。本课程从第一个变量声明开始,一直讲到编写无锁并发数据结构和 C++20 协程,涵盖整个语言。

你将学到什么

你将从语法、变量、字符串和 I/O 流开始,然后进入控制流、结构体、类和动态数组。核心能力围绕 C++ 内存模型、RAII、const 正确性、安全指针用法以及 std::optional 和 std::variant 展开。你将使用整个 STL 容器范围——vector、关联容器、unordered_map、std::array 和 std::span——并掌握 STL 算法、迭代器和范围。现代 C++ 特性获得重点关注:移动语义、右值引用、lambda、函数对象、std::function,以及 C++11、14、17 和 20 中的亮点功能。后续课程涵盖使用 Google Test 进行单元测试、使用 sanitizer 进行调试、基于 CMake 的构建、文件 I/O、网络编程和并发原语。课程以高级模板、SFINAE、C++20 Concepts、CRTP、类型特征、无锁原子操作和协程收尾。

学习路径

五十一门课程从 A1 到 C2 逐级递进。A1 和 A2 基础课程涵盖语法、字符串、I/O、控制流、结构体、引用和实用的小项目模式。B1 是最大的模块——十九门课程建立专业级的语言能力,包括内存模型、智能指针、继承、运算符重载以及标准库的深入知识。B2 过渡到高级主题,涵盖移动语义、现代 C++ 亮点、STL 算法、单元测试和调试。十门 C1 课程涉及并发、高级模板和元编程、C++20 Concepts、性能工程、嵌入式系统、互操作性和 API 设计。课程在 C2 级以无锁和原子并发以及 C++20 协程结束。

它如何工作

每门课程分为短小精悍的课题,你可在内置代码编辑器中完成,获得实时反馈。当你遇到困难时,AI 导师会解释概念并引导你找到正确答案,而不是直接给出答案。

开始学习 →

你的学习方式

🎯
互动课程
实时反馈的动手编程练习
🤖
AI 导师
遇到困难时立即获得 AI 帮助
💻
内置编辑器
直接在浏览器中编写并运行代码
🏆
证书
完成课程后获得证书
课程

51 门课程

C++ Academy 学习路径中的所有课程。

01

欢迎学习 C++

A13 节课

了解 C++ 是什么、它诞生 40 年后为何仍是最强大且应用最广泛的语言之一,以及它每天在您的生活中哪些地方默默运行。

02

C++ 基础:语法与变量

A14 节课PRO

配置 C++ 编译器,编写第一个程序,并掌握变量、类型推导和基本运算符。这是每位 C++ 开发者的起点。

03

在 C++ 中处理字符串

A14 节课PRO

使用 std::string 和 C 风格字符数组操作文本。学习日常字符串操作中的解析、格式化和类型转换。

04

输入与输出流

A14 节课PRO

使用 iostream 清晰地读取输入和写入输出。涵盖 cin、cout、cerr、格式化辅助工具和安全的输入验证。

05

控制流模式

A14 节课PRO

像专业开发者一样进行分支和循环。学习 if-else、switch、for、while、基于范围的 for,以及用于编写整洁代码的现代提前返回风格。

06

结构体与类简介

A24 节课PRO

将数据组织到结构体和类中。学习构造函数、成员初始化列表和 this 指针。

07

数字与数学运算

A24 节课PRO

使用整数、浮点数和 cmath 库进行计算。生成随机数并理解溢出行为。

08

向量与动态数组

A24 节课PRO

掌握现代 C++ 集合中的主力工具 std::vector,并将其与 std::array 和原始 C 风格数组进行比较。

09

引用与按引用传递

A24 节课PRO

理解引用——比指针更安全的替代方案——并学习按引用和值得 const 引用传递值的规则

10

实用迷你项目模式

A24 节课PRO

通过构建四个独立的迷你项目来应用所学知识:计算器、CSV 读取器、猜数字游戏和词频统计器。

11

使用 <random> 生成随机数

A24 节课PRO

使用 生成随机数:随机引擎、分布等更多内容

12

C++ 内存模型:栈与堆

B14 节课PRO

C++ 内存模型:栈与堆:栈分配、使用 new/delete 进行堆分配等更多内容

13

RAII 与资源管理

B14 节课PRO

RAII 与资源管理:RAII 原则、析构函数与清理等更多内容

14

异常处理与 noexcept

B14 节课PRO

异常处理与 noexcept:try、catch、throw、异常安全等更多内容

15

const 正确性与 constexpr

B14 节课PRO

const 正确性与 constexpr:const 变量与参数、const 成员函数等更多内容

16

安全使用指针

B14 节课PRO

负责任地使用原始指针。学习指针算术、nullptr,以及何时应改用引用或智能指针。

17

枚举、联合体与 std::variant

B14 节课PRO

枚举、联合体与 std::variant:有作用域的 enum class、联合体及其风险等更多内容

18

std::optional 与 std::expected

B14 节课PRO

std::optional 与 std::expected:使用 optional 表示缺失、访问 optional 值等更多内容

19

std::string_view 与高效字符串

B14 节课PRO

std::string_view 与高效字符串:为什么使用 string_view、创建视图等更多内容

20

std::array 与 std::span

B14 节课PRO

std::array 与 std::span:固定大小的 std::array、std::span 基础等更多内容

21

关联式容器

B14 节课PRO

关联式容器:std::map、std::set 等更多内容

22

使用 unordered_map 进行哈希

B14 节课PRO

使用 unordered_map 进行哈希:std::unordered_map、unordered_set 等更多内容

23

智能指针与所有权

B14 节课PRO

使用智能指针替代原始 new 和 DELETE。掌握 unique_ptr、shared_ptr 和 weak_ptr 的所有权语义。

24

继承与多态模式

B14 节课PRO

运用继承、虚函数和抽象类进行 OO 设计,并了解何时组合更合适。

25

运算符重载与用户定义类型

B14 节课PRO

让您定义的类型用起来更自然。重载算术、比较、流操作和 C++20 三路比较运算符。

26

使用 CMake 构建与包管理

B14 节课PRO

使用 CMake 设置可移植、可扩展的 C++ 构建流程。使用 vcpkg 和 Conan 管理依赖项。

27

使用 fstream 进行文件输入输出

B14 节课PRO

使用 fstream 进行文件输入输出:使用 ifstream 读取文件、使用 ofstream 写入文件等更多内容

28

时间与 Chrono 库

B14 节课PRO

时间与 Chrono 库:时长与时钟、时间点等更多内容

29

使用 <regex> 处理正则表达式

B14 节课PRO

使用 处理正则表达式:regex 基础、捕获组等更多内容

30

现代 C++:C++11、14、17、20 精华

B24 节课PRO

了解 C++11 到 C++20 期间最具影响力的新增特性:auto、范围 for、lambda、结构化绑定等。

31

移动语义与右值引用

B24 节课PRO

消除不必要的拷贝。学习右值引用、std::move、std::forward,以及如何编写移动构造函数。

32

仿函数、Lambda 与 std::function

B24 节课PRO

在现代 C++ 中有效使用可调用对象。比较仿函数、lambda 和类型擦除后的 std::function。

33

深入探究 STL 算法

B24 节课PRO

使用丰富的算法库。通过实用示例学习非修改、修改、排序和数值算法。

34

迭代器与范围

B24 节课PRO

理解迭代器类别,并采用 C++20 范围库构建可组合、延迟执行的数据流水线。

35

函数对象与 std::bind

B24 节课PRO

函数对象与 std::bind:函数指针、std::function 等更多内容

36

网络与套接字

B24 节课PRO

从 C++ 连接网络。使用 BSD 套接字、基于 epoll 的异步 I/O,以及 Boost.Asio 编写清晰的异步代码。

37

使用 Google Test 进行单元测试

B24 节课PRO

使用 Google Test 进行单元测试:配置 GTest、断言与匹配器等更多内容

38

调试与 Sanitizer 工具

B24 节课PRO

调试与 Sanitizer 工具:使用 gdb 和 lldb、AddressSanitizer 等更多内容

39

并发原语

C14 节课PRO

安全地并行运行代码。学习 std::thread、std::mutex、条件变量,以及结合 future 使用 std::async。

40

模板特化与 SFINAE

C14 节课PRO

模板特化与 SFINAE:完全特化、偏特化等更多内容

41

高级模板与元编程

C14 节课PRO

熟练掌握模板。学习特化、可变参数模板、constexpr 函数和 if constexpr。

42

C++20 概念与约束

C14 节课PRO

使用更简洁的 C++20 概念系统替代冗长的 SFINAE,以约束模板。

43

性能工程与性能分析

C14 节课PRO

让 C++ 代码运行得更快。学习缓存感知布局、分支预测、性能分析工具和微基准测试。

44

用于嵌入式与系统编程的 C++

C14 节课PRO

在微控制器和系统软件中应用 C++。处理无 RTTI、无异常和实时要求等限制。

45

互操作性:C++ 与其他语言

C14 节课PRO

连接 C++、C、Python、Rust 等语言。使用 extern C、pybind11、FFI 和 SWIG 打通不同生态。

46

C++ API 设计与库编写

C14 节课PRO

设计经得起时间考验的库。学习仅头文件模式、API 版本管理、ABI 稳定性和 PIMPL。

47

生产环境中的现代 C++

C14 节课PRO

交付可靠的 C++ 软件。使用静态分析、消毒器、模糊测试和持续集成,让代码保持健康。

48

CRTP 与静态多态

C14 节课PRO

CRTP 与静态多态:CRTP 惯用法、静态多态等更多内容

49

类型特征与 <type_traits>

C14 节课PRO

类型特征与 :查询类型、转换类型等更多内容

50

高级并发:无锁编程与原子操作

C24 节课PRO

使用原子操作、内存顺序和 CAS 循环构建无锁数据结构。理解无锁编程中的各种风险。

51

C++20 协程

C24 节课PRO

使用 C++20 协程编写读起来像同步代码一样的异步代码。构建您自己的生成器和任务。

常见问题

常见问题解答

C++ Academy 课程免费吗?

免费。你可以免费开始 C++ Academy 课程并完成它的所有互动课程。可选的 PRO 订阅解锁高级 AI 工具和可分享的证书。

学习 C_PLUS_PLUS 需要有先前的经验吗?

不需要。课程从基础开始,逐步进阶到更高难度的主题,所以即使你没有任何 C_PLUS_PLUS 基础也可以开始。

我在 CoddyKit 上怎样学习 C_PLUS_PLUS?

学以致用。简洁的互动课程将清晰的讲解与实时动手编程练习结合,24/7 AI 导师在你遇到困难时提供个性化帮助。

完成 C++ Academy 后能获得证书吗?

可以。PRO 学员可以参加考试,获得 C++ Academy 课程的可分享的完成证书,其中包含可验证的代码。

我能在手机上学习 C_PLUS_PLUS 吗?

可以。CoddyKit 支持网页版和原生 iOS、Android 应用,你可以在任何设备上学习 C_PLUS_PLUS,进度会自动同步。

立即开始 C++ Academy

加入数千名学习者,通过 AI 驱动的课程掌握编程。

免费开始 →浏览所有课程