编程进阶网 编程进阶网
首页
  • 计算机原理
  • 操作系统
  • 网络协议
  • 数据库原理
  • 面向对象
  • 设计原则
  • 设计模式
  • 系统架构
  • 性能优化
  • 编程原理
  • 方案设计
  • 稳定可靠
  • 工程运维
  • 基础认知
  • 线性结构
  • 树与哈希
  • 工业级实现
  • 算法思想
  • 实战与综合
  • 算法题考核
  • C语言入门
  • C综合案例
  • C专栏博客
  • C标准集库
  • C++入门教程
  • C++综合案例
  • C++专栏博客
  • C++开发技巧
  • Java入门教程
  • Java综合案例
  • Java专栏博客
  • Go入门教程
  • Go综合案例
  • Go专栏博客
  • Go开发技巧
  • JavaScript入门
  • JavaScript高级
  • Android库解读
  • Android专栏
  • Android智能硬件
  • iOS ObjC入门
  • iOS Swift入门
  • iOS入门精通
  • Web之Html手册
  • Web之TypeScript
  • Web之Vue高级进阶
  • Linux之QML入门
  • Linux之QT核心库
  • Linux实践开发
  • Python教程
  • Shell&Bash教程
  • 工具脚本
  • 自动化脚本
  • 质量保障
  • 产品思考
  • 软实力
  • 开发流程
  • Git应用
  • 技术模版
  • 技术规范
  • Markdown
  • Mermaid
  • 开源协议
  • JSON工具
  • 文本工具
  • 图片处理
  • 文档转化
  • 代码压缩
  • 关于我
  • 自我精进
  • 职场管理
  • 职场面试
  • 心情杂货
  • 友情链接

杨充

专注编程 · 终身学习者
首页
  • 计算机原理
  • 操作系统
  • 网络协议
  • 数据库原理
  • 面向对象
  • 设计原则
  • 设计模式
  • 系统架构
  • 性能优化
  • 编程原理
  • 方案设计
  • 稳定可靠
  • 工程运维
  • 基础认知
  • 线性结构
  • 树与哈希
  • 工业级实现
  • 算法思想
  • 实战与综合
  • 算法题考核
  • C语言入门
  • C综合案例
  • C专栏博客
  • C标准集库
  • C++入门教程
  • C++综合案例
  • C++专栏博客
  • C++开发技巧
  • Java入门教程
  • Java综合案例
  • Java专栏博客
  • Go入门教程
  • Go综合案例
  • Go专栏博客
  • Go开发技巧
  • JavaScript入门
  • JavaScript高级
  • Android库解读
  • Android专栏
  • Android智能硬件
  • iOS ObjC入门
  • iOS Swift入门
  • iOS入门精通
  • Web之Html手册
  • Web之TypeScript
  • Web之Vue高级进阶
  • Linux之QML入门
  • Linux之QT核心库
  • Linux实践开发
  • Python教程
  • Shell&Bash教程
  • 工具脚本
  • 自动化脚本
  • 质量保障
  • 产品思考
  • 软实力
  • 开发流程
  • Git应用
  • 技术模版
  • 技术规范
  • Markdown
  • Mermaid
  • 开源协议
  • JSON工具
  • 文本工具
  • 图片处理
  • 文档转化
  • 代码压缩
  • 关于我
  • 自我精进
  • 职场管理
  • 职场面试
  • 心情杂货
  • 友情链接
  • README
  • C语言入门精通

  • Cpp入门到精通

    • README
    • 入门教程

      • README
        • 目录介绍
        • 01.卷一定位与读者画像
          • 1.1 卷一在四卷本中的位置
          • 1.2 三类读者的不同读法
          • 1.3 读完卷一你将获得什么
        • 02.卷一 17 章总目录
          • 2.1 第一篇 开篇(第 1 章)
          • 2.2 第二篇 基础语法(第 2-6 章)
          • 2.3 第三篇 函数与作用域(第 7-9 章)
          • 2.4 第四篇 面向对象初步(第 10-12 章)
          • 2.5 第五篇 库与外围(第 13-16 章)
          • 2.6 第六篇 现代 C++ 速览(第 17-18 章)
        • 03.章节与文件映射表
        • 04.学习路径与时间预算
          • 4.1 8 周学习计划(推荐)
          • 4.2 速读模式(已有 C/C++ 基础)
          • 4.3 三种典型读者路线
        • 05.卷一读者承诺与边界
          • 5.1 本卷会教你的
          • 5.2 本卷不会展开的
        • 06.每章统一结构
        • 07.如何与卷二、三、四衔接
        • 卷首寄语
        • 08.卷一改造完成度(目录连贯性自检表)
          • 8.1 全新创建的章节(3 篇)
          • 8.2 增补现代特性的章节(15 篇均加了「卷一改造增补」+「新手陷阱 Top 5」+「推荐阅读」)
          • 8.3 跨卷锚点链接清单(已校验)
          • 8.4 卷一统一格式校验
          • 8.5 后续维护清单
      • Cpp简史
      • 基础语法
      • 数据类型
      • 运算符
      • 复合类型
      • 流程语句
      • 函数
      • 指针引用
      • 类和对象
      • 继承多态
      • 内存模型
      • 动态内存
      • IO和文件
      • 异常处理
      • 线程和锁
      • STL模版
      • 预处理器
      • 特性图谱
    • 综合案例

    • 专栏博客

    • 开发技巧

  • Java入门精通

  • Go入门到精通

  • JavaScript入门

  • CodeX
  • Cpp入门到精通
  • 入门教程
杨充
2026-05-07
目录

README

# 卷一《语法卷:现代 C++ 基础入门》总目录与导读

本卷是《现代 C++ 由浅入深:从入门到工程精通》四卷本的第一卷。 目标:让你在 17 章篇幅内,把"会读 C++ 代码"升级到"会写符合现代 C++ 习惯的代码"。 阅读层级:0 基础学生 → 转语言工程师 → 已写过 C++ 但想系统补漏的开发者。


# 目录介绍

  • 01.卷一定位与读者画像
    • 1.1 卷一在四卷本中的位置
    • 1.2 三类读者的不同读法
    • 1.3 读完卷一你将获得什么
  • 02.卷一 17 章总目录
    • 2.1 第一篇 开篇(第 1 章)
    • 2.2 第二篇 基础语法(第 2-6 章)
    • 2.3 第三篇 函数与作用域(第 7-9 章)
    • 2.4 第四篇 面向对象初步(第 10-12 章)
    • 2.5 第五篇 库与外围(第 13-16 章)
    • 2.6 第六篇 现代 C++ 速览(第 17-18 章)
  • 03.章节与文件映射表
  • 04.学习路径与时间预算
    • 4.1 8 周学习计划(推荐)
    • 4.2 速读模式(已有 C/C++ 基础)
    • 4.3 三种典型读者路线
  • 05.卷一读者承诺与边界
    • 5.1 本卷会教你的
    • 5.2 本卷不会展开的
  • 06.每章统一结构
  • 07.如何与卷二、三、四衔接
  • 08.卷一改造完成度(目录连贯性自检表)
    • 8.1 全新创建的章节(3 篇)
    • 8.2 增补现代特性的章节(15 篇)
    • 8.3 跨卷锚点链接清单
    • 8.4 卷一统一格式校验
    • 8.5 后续维护清单

# 01.卷一定位与读者画像

# 1.1 卷一在四卷本中的位置

                     《现代 C++ 由浅入深:从入门到工程精通》

  ┌──────────────────────────────────────────────────────────┐
  │  卷一《语法卷》  ←  你在这里                               │
  │     · 现代 C++ 怎么写                                    │
  │     ↓                                                    │
  │  卷二《工程卷》     · 类与项目怎么组织(9 个完整项目)   │
  │     ↓                                                    │
  │  卷三《底层卷》     · 编译器和运行时怎么实现             │
  │     ↓                                                    │
  │  卷四《实战卷》     · 上线后怎么调与怎么活               │
  └──────────────────────────────────────────────────────────┘
1
2
3
4
5
6
7
8
9
10
11
12

卷一的角色是"语言地基":

  • 不是 C++ Primer 的复刻——我们以 C++17 为基线,C++11 的特性默认就是要会的,所有"老 C++ 写法(如 NULL、原始 new/delete)"会被明确标注为反例。
  • 不深挖底层——对象内存布局、虚函数表、移动语义等内容全部留给卷三,本卷只讲"够用、能写"。
  • 不讲项目工程化——CMake、单元测试、CI 等放在卷二,本卷只用最简单的 g++ a.cpp b.cpp。

# 1.2 三类读者的不同读法

读者画像 推荐读法 预计耗时
零基础大学生 17 章顺序通读,每章动手敲 3-5 个代码示例 6-8 周
C 语言转 C++ 跳过第 2-6 章细节,重点读第 7-12 章(OOP)、第 16 章(STL)、第 18 章(现代特性) 3-4 周
Java/Go/Python 转 C++ 重点读第 8 章(指针/引用)、第 11、12 章(动态内存/RAII)、第 18 章;其他章作为查阅 2-3 周

# 1.3 读完卷一你将获得什么

  • ✅ 读得懂任何 C++17 风格的现代代码,认得出 90% 的关键字与语法
  • ✅ 能独立写出 200-500 行的小型程序(命令行工具、控制台游戏)
  • ✅ 知道 auto / nullptr / std::string / std::vector / 智能指针的"正确打开方式"
  • ✅ 知道 为什么不该 用裸数组、裸指针、malloc/free、宏常量
  • ✅ 具备进入卷二(项目实战)和卷三(底层原理)的全部前置知识

# 02.卷一 17 章总目录

第 18 章 18.特性图谱.md 作为附录性"特性速览"贴在最末,配合全卷复盘。

# 2.1 第一篇 开篇(第 1 章)

章 文件 关键词
第 1 章 01.Cpp简史.md C++98/03/11/14/17/20/23、Bjarne Stroustrup、ISO C++ 委员会

# 2.2 第二篇 基础语法(第 2-6 章)

章 文件 关键词
第 2 章 02.基础语法.md main、#include、命名空间、修饰符、关键字、现代 Hello World
第 3 章 03.数据类型.md 整型/浮点/字符/布尔、固定宽度类型、std::byte、四种 _cast
第 4 章 04.运算符.md 算术/比较/逻辑/位/sizeof、C++20 <=> 三路比较
第 5 章 05.复合类型.md std::string、std::array、enum class、为什么不该用裸数组
第 6 章 06.流程语句.md if / if constexpr / if-init / switch、for / 范围 for、结构化绑定

# 2.3 第三篇 函数与作用域(第 7-9 章)

章 文件 关键词
第 7 章 07.函数.md 值传递/引用传递/指针传递、内联、[[nodiscard]]、Lambda、consteval
第 8 章 08.指针引用.md 取地址/解引用、空指针/野指针/悬空指针、引用本质、左值/右值预告
第 9 章 09.类和对象.md 封装、this、构造/析构、初始化列表、委托构造、explicit、五法则 / 零法则

# 2.4 第四篇 面向对象初步(第 10-12 章)

章 文件 关键词
第 10 章 10.继承多态.md public/protected/private 继承、菱形继承、虚继承、override / final、纯虚函数
第 11 章 11.内存模型.md 栈/堆/全局/静态、生命周期、对象存活窗口、与卷三的衔接
第 12 章 12.动态内存.md new / delete、内存泄漏、智能指针 unique_ptr / shared_ptr / weak_ptr(使用层面)

# 2.5 第五篇 库与外围(第 13-16 章)

章 文件 关键词
第 13 章 13.IO和文件.md cin / cout / cerr、fstream、二进制读写、std::filesystem
第 14 章 14.异常处理.md try / catch / throw、std::exception、noexcept、错误码 vs 异常
第 15 章 15.线程和锁.md std::thread / std::jthread、mutex、atomic、四种锁守卫
第 16 章 16.STL模版.md 函数模板/类模板、vector / list / map / unordered_map、迭代器、算法

# 2.6 第六篇 现代 C++ 速览(第 17-18 章)

章 文件 关键词
第 17 章 17.预处理器.md #include / #define / 条件编译、头文件保护、Modules(C++20)简介
第 18 章 18.特性图谱.md C++11→C++23 全部关键特性按"使用频度 × 重要性"打分

# 03.章节与文件映射表

文件 书稿章节 改造重点(详见各章末尾"卷一改造增补")
README.md(本文件) 卷首导读 全新创建
01.Cpp简史.md 第 1 章 全新创建
02.基础语法.md 第 2 章 添加 auto/nullptr/using 现代写法节
03.数据类型.md 第 3 章 增补 std::byte / std::optional 类型
04.运算符.md 第 4 章 增补 C++20 <=> 三路比较运算符
05.复合类型.md 第 5 章 数组小节增补"为什么不该用裸数组"
06.流程语句.md 第 6 章 增补 if-init / if constexpr / 结构化绑定
07.函数.md 第 7 章 增补 [[nodiscard]] / consteval / 尾置返回
08.指针引用.md 第 8 章 引用部分前置智能指针概念预告
09.类和对象.md 第 9 章 增补"五法则 / 零法则"小节、=default / =delete
10.继承多态.md 第 10 章 强化 override / final、虚析构强制要求
11.内存模型.md 第 11 章 全新创建(与卷三第 1 章呼应)
12.动态内存.md 第 12 章 重构为以 RAII 为主线,裸 new/delete 退居反例
13.IO和文件.md 第 13 章 增补 std::filesystem / std::format / std::print
14.异常处理.md 第 14 章 增补 noexcept / std::expected / 错误码 vs 异常
15.线程和锁.md 第 15 章 增补 std::jthread、四种锁守卫、原子内存序
16.STL模版.md 第 16 章 仅做使用层面,源码留给卷三;增补 Ranges 与容器选型决策表
17.预处理器.md 第 17 章 增补 Modules(C++20)简介、用现代特性替代宏
18.特性图谱.md 第 18 章 全新创建(卷一与后三卷的总索引)

# 04.学习路径与时间预算

# 4.1 8 周学习计划(推荐)

Week 1: 第 1-2 章   开篇 + 现代 Hello World(每天 1-2 小时,跑通 3 个示例)
Week 2: 第 3-4 章   数据类型 + 运算符(每天 2 小时,做小练习)
Week 3: 第 5-6 章   复合类型 + 流程(重点:vector / string / 范围 for)
Week 4: 第 7-8 章   函数 + 指针引用(每章配 5 道思考题)
Week 5: 第 9-10 章  类与对象 + 继承多态
Week 6: 第 11-12 章 内存模型 + 动态内存与 RAII
Week 7: 第 13-15 章 IO + 异常 + 线程
Week 8: 第 16-18 章 STL + 预处理 + 现代特性图谱(边读边查)
1
2
3
4
5
6
7
8

# 4.2 速读模式(已有 C/C++ 基础)

Day 1:  第 1、18 章(看现代演进 + 特性图谱)
Day 2:  第 8、11、9 章(指针引用 + 内存模型 + 类的现代写法)
Day 3:  第 12、16 章(RAII + STL)
Day 4:  其他章节按目录速翻,遇到陌生概念再回查
1
2
3
4

# 4.3 三种典型读者路线

零基础学生:    1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → 10 → 11 → 12 → 13 → 14 → 15 → 16 → 17 → 18
C 转 C++:     1 → 3 → 7(速读) → 8 → 11 → 9 → 10 → 12 → 13 → 16 → 18
Java/Go 转:   1 → 8 → 11 → 9(重点)→ 12(重点)→ 13 → 14 → 18
1
2
3

# 05.卷一读者承诺与边界

# 5.1 本卷会教你的

  • ✅ 现代 C++ 的"日常写法"(C++17 为主,关键 C++20/23 特性预告)
  • ✅ 所有基础语法、关键字、修饰符的实际用法和取舍
  • ✅ 常见陷阱(裸指针 / 浅拷贝 / 内存泄漏 / 整数溢出 / 浮点比较)的识别与回避
  • ✅ STL 容器的使用(不会讲源码)
  • ✅ "如果做错了会怎样"——每章末尾"新手陷阱 Top 5"

# 5.2 本卷不会展开的

下表的内容会被提到、留链接,但展开讲的是后三卷:

主题 在哪一卷讲
对象内存布局、虚函数表、vptr 偏移 卷三第 1、5 章
模板元编程、SFINAE、requires 卷三第 6、9 章
STL 源码(vector / map / unordered_map 实现) 卷三第 7 章
移动语义、完美转发、引用折叠 卷三第 11 章
内存序、原子、无锁队列 卷三第 16-17 章
协程、Modules、Concepts、Ranges 原理 卷三第 9、19、21 章
调试 / 性能 / 安全 / 工程化 卷四全卷
CMake / 单元测试 / CI 等工程实践 卷二第 13-15 章

如果你在卷一读到某个概念觉得"没讲透",不是漏写,而是刻意延迟——在该处会有"➡ 展开见 卷三第 X 章"的指引。

# 06.每章统一结构

为了便于阅读和复习,卷一从第 2 章开始,所有章节都遵循以下统一结构:

1. 章节目录(自动生成的锚点链接)
2. 本章学习目标(3-5 条 bullet)
3. 主体内容(按 N.1 / N.2 / N.3 ... 分节)
   每个三级小节内部:
     · 概念解释
     · 至少 1 个完整可运行示例
     · "综合案例与思考"小练习
4. 本章底层原理(简介,详见卷三)
5. 章末新手陷阱 Top 5
6. 思考题(5-10 题)
7. 推荐阅读(卷内 / 跨卷链接)
1
2
3
4
5
6
7
8
9
10
11

**章末"新手陷阱 Top 5"**是本书相比传统 C++ 教材最大的差异之一——它直接告诉你"哪些代码 编译过 / 跑得通 / 但是错的"。

# 07.如何与卷二、三、四衔接

卷一章节 卷二对应 卷三对应 卷四对应
第 5 章 复合类型 — 第 7 章 STL 容器源码 —
第 8 章 指针引用 — 第 2 章 引用与指针底层 第 1 章 BusError 排查
第 11 章 内存模型 — 第 1 章 C++ 内存模型与对象布局 第 5 章 内存泄漏排查
第 9 章 类与对象 第 1 章 五法则 第 3、4 章 OOP 底层、构造析构 —
第 10 章 继承多态 第 2-3 章 继承体系工程化 第 5 章 虚函数表、虚继承 —
第 12 章 动态内存 RAII 第 4 章 简易数据库 RAII 实战 第 10 章 智能指针原理 第 5 章 内存泄漏
第 14 章 异常处理 — 第 13 章 异常处理原理 第 2 章 崩溃流程与捕获
第 15 章 线程和锁 — 第 16-17 章 内存序、原子、无锁 —
第 16 章 STL 模板 第 5、9 章 案例使用 第 6、7、8 章 STL 与模板原理 —
第 17 章 预处理器 第 13 章 CMake 实战 第 20、21 章 编译链接、Modules —
第 18 章 现代特性图谱 (索引性章节) (索引性章节) (索引性章节)

读者完成卷一后,可以根据兴趣选择任意一卷继续深入;建议优先级:

工程师:     卷二(项目)→ 卷四(实战)→ 卷三(底层)
学生 / 面试: 卷三(底层)→ 卷四(实战)→ 卷二(项目)
团队 Lead:   卷四(实战)→ 卷二(项目)→ 卷三(底层)
1
2
3

# 卷首寄语

"学一门语言不难,难的是把它变成你思维的一部分。"

C++ 的入门曲线之所以陡,不是因为它难学,而是因为传统教材从一开始就给你"老 C++"的写法——char *str = "hello"、#define MAX 100、malloc / free、原始数组——等到你真正进项目,才发现工业界早就在用 std::string、constexpr、智能指针、std::vector 了。

本卷会从第一行代码就用现代 C++,让你不必先学一遍"过时的 C++"再忘掉它。

翻开第 1 章,让我们从 C++ 的简史开始。

➡ 下一章:第 1 章 C++ 简史与版本演进

# 08.卷一改造完成度(目录连贯性自检表)

本节记录卷一改造的完整轨迹,便于后续维护与读者交叉参考。

# 8.1 全新创建的章节(3 篇)

文件 行数 角色
01.Cpp简史.md ~500 第 1 章
11.内存模型.md ~515 第 11 章
18.特性图谱.md ~465 第 18 章

备注:原 A2.开发环境完整搭建.md 已并入第 2 章 02.基础语法.md 的"环境快速验证"部分;环境完整搭建(IDE / 调试器 / CI)将放到**卷二《工程卷》**第 13-15 章详细展开。

# 8.2 增补现代特性的章节(15 篇均加了「卷一改造增补」+「新手陷阱 Top 5」+「推荐阅读」)

文件 增补主题
02.基础语法.md 现代 Hello World、CMake 模板
03.数据类型.md auto/decltype 推导、std::byte、std::optional、std::variant、std::any、std::string_view、<cstdint>
04.运算符.md C++20 三路比较 <=> 与三种比较类别
05.复合类型.md std::array/std::vector/std::span 替代裸数组、std::variant 替代 union、enum class
06.流程语句.md if-init、if constexpr、结构化绑定
07.函数.md Lambda 演进、auto 返回、尾置返回、constexpr/consteval、[[nodiscard]]
08.指针引用.md nullptr、智能指针、std::span、reference_wrapper
09.类和对象.md 五法则 / 三法则 / 零法则、=default / =delete、决策表
10.继承多态.md 四种多态形态、override/final、CRTP、Concepts
12.动态内存.md RAII 主线、三大智能指针、循环引用
13.IO和文件.md std::filesystem、std::format、std::print
14.异常处理.md noexcept、错误码 vs 异常、std::expected、异常安全级别
15.线程和锁.md std::jthread、四种锁守卫、原子内存序
16.STL模版.md 容器选型决策表、必会算法、Ranges 管道
17.预处理器.md 用 constexpr/if constexpr 替代宏、C++20 Modules

# 8.3 跨卷锚点链接清单(已校验)

  • 卷一 → 卷二:项目实战参考——预留链接(待卷二章节文件就位后补具体路径)
  • 卷一 → 卷三:底层原理深入——预留链接(多处使用「卷三第 X 章」描述)
  • 卷一 → 卷四:工程实战
    • ../04.开发技巧/01.从一次BusError排查Cpp崩溃问题.md(已存在)
    • ../04.开发技巧/Cpp编译和链接原理.md(已存在)
    • ../04.开发技巧/崩溃流程和捕获原理.md(已存在)
    • ../04.开发技巧/调试技巧和原理分析.md(已存在)

# 8.4 卷一统一格式校验

  • ✅ 文件名统一为 NN.4-6字.md 格式
  • ✅ 每篇正文章号(H1 与目录前缀)与文件序号同步:第 N 章 ↔ NN.xxx.md
  • ✅ 每章节末尾均统一为:主体内容 → 综合思考题 → 卷一改造增补 → 新手陷阱 Top 5 → 推荐阅读
  • ✅ 跨章引用全部使用相对路径并已批量校验

# 8.5 后续维护清单

  • 卷二开始撰写后,回填 §07 的卷二具体章节链接
  • 卷三开始撰写后,回填 §07 的卷三具体章节链接
  • 当 GCC/Clang/MSVC 完整支持 C++26 后,更新 18.特性图谱.md 增加 C++26 专章
上次更新: 2026/06/10, 11:13:41
README
Cpp简史

← README Cpp简史→

最近更新
01
信号崩溃快速排查
06-15
02
CoreDump破案
06-15
03
perf火焰图实战
06-15
更多文章>
Theme by Vdoing | Copyright © 2019-2026 杨充 | MIT License | 桂ICP备2024034950号 | 桂公网安备45142202000030
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式