Skip to content

parallel101/cppguidebook

Folders and files

NameName
Last commit message
Last commit date
Aug 22, 2024
Mar 29, 2025
Mar 29, 2025
Aug 22, 2024
Aug 30, 2024
Jan 26, 2025
Jul 18, 2024
Jul 31, 2024
Jul 19, 2024
Sep 7, 2024
Jul 19, 2024

Repository files navigation

小彭老师的现代 C++ 大典

小彭大典是一本关于现代 C++ 编程的权威指南,它涵盖了从基础知识到高级技巧的内容,适合初学者和有经验的程序员阅读。本书由小彭老师亲自编写,通过简单易懂的语言和丰富的示例,帮助读者快速掌握 C++ 的核心概念,并学会如何运用它们来解决实际问题。

Note

敢承诺:土木老哥也能看懂!

在哪里可以看?

无需下载,点击开始在线阅读

Note

若 GitHub Pages 无法访问,可以试试看小彭老师维护的国内镜像站

也可以前往 GitHub Release 页面 下载 PDF 文件,方便离线查看。

Tip

每当小彭老师推送了新章节,网页和 PDF 都会自动实时更新哦。

本书还在持续更新中……要追番的话,点一下 GitHub 右上角的 “Watch” 按钮,每当小彭老师提交新 commit,GitHub 会向你发送一封电子邮件,提醒你小彭老师更新了。

常见问题

如果你在阅读过程中遇到任何问题,可以在 GitHub Issues 中提出,小彭老师会尽力解答。

Tip

也可以在 B 站 发私信给小彭老师哦。

你也可以参与编写的开源小册

本书完全开源,Markdown 源文件在 docs/ 文件夹下。

如果发现书写问题,或者你有想加入的新章节,有关于 C++ 新想法,新技巧分享给大家,可以提交 Pull Request 来帮助小彭老师一起写书。合并后,GitHub 的机器人将自动重新编译和部署网页。

赞助名单

小彭大典的持续编写离不开以下小彭友的赞助!

https://afdian.com/a/archibate

Note

小彭老师的大典是免费下载的,不用赞助也可以查看哦。

小彭老师遭到 “白眼狼”脑板 开除,目前处于失业状态。只好寻求各位小彭友赞助,保障小彭老师的基本生命体征运行。

Tip

小彭老师领衔开发的 Zeno 软件,曾参与 流量地球 2、杭州亚运会等大型项目的特效制作,魅惑无数西装大脑投资人,为“白眼狼”博得风光无限。现在却将如此贡献巨大的 Zeno “开国功勋”,以“资金困难”为由“卸载”了,足以见这位“白眼狼”的“知恩图报”。

如果你觉得本书对你有所帮助,可以通过 爱发电 赞助小彭老师,以便小彭老师有更多的精力继续编写和维护本书。

Tip

每有一位小彭友赞助 26.90,小彭老师一天的食品安全就有了着落。

https://afdian.com/a/archibate

救命……爱发电似乎关停了!?小彭老师赶紧贴出支付宝收款码作为替代……

docs/img/zfb-qrcode.jpg

Tip

如果你也处于失业状态,就不用勉强赞助了……也可以先给小彭老师点一颗⭐Star⭐表示心意。

Mkdocs 真好用,家人们

本书使用 Mkdocs 构建,是一种基于 Markdown 的静态网站生成器,可以把一堆 Markdown 文件编译成一个网站,非常适合用于写书。

每当小彭老师提交新的代码,GitHub 的机器人就会自动调用 Mkdocs 重新编译和部署网页。这样,小彭老师只需要关心写作本书,不用再操心排版、发布等问题。

git clone https://github.com/parallel101/cppguidebook
cd cppguidebook
pip install -r requirements.txt

requirements.txt 中是包括 Mkdocs 在内的构建本书所需的全部依赖项。

  • mkdocs build 命令可以编译生成 site 文件夹,打开其中的 site/index.html 就可以开始看了。
  • mkdocs serve 命令会在 http://127.0.0.1:8000 开启实时预览服务,在浏览器中打开该地址,每当你修改 .md 文件时页面都会自动刷新。

以下是第一章节的内容预览,要查看全文,请前往 Release 页面下载完整 PDF 文件或在线浏览

前言

推荐用手机或平板竖屏观看,可以在床或沙发上躺着。

用电脑看的话,可以按 WIN + ←,把本书的浏览器窗口放在屏幕左侧,右侧是你的 IDE。一边看一边自己动手做实验。

split view

请坐和放宽。

观前须知

与大多数现有教材不同的是,本课程将会采用“倒叙”的形式,从最新的 C++23 讲起!然后讲 C++20、C++17、C++14、C++11,慢慢讲到最原始的 C++98。

不用担心,越是现代的 C++,学起来反而更容易!反而古代 C++ 才又臭又长

很多同学想当然地误以为 C++98 最简单,哼哧哼哧费老大劲从 C++98 开始学,才是错误的。

为了应付缺胳膊少腿的 C++98,人们发明了各种繁琐无谓的写法,在现代 C++ 中,早就已经被更简洁直观的写法替代了。

Tip

例如所谓的 safe-bool idiom,写起来又臭又长,C++11 引入一个 explicit 关键字直接就秒了。结果还有一批劳保教材大吹特吹 safe-bool idiom,吹得好像是个什么高大上的设计模式一样,不过是个应付 C++98 语言缺陷的蹩脚玩意。

就好比一个老外想要学习汉语,他首先肯定是从现代汉语学起!而不是上来就教他文言文

Tip

即使这个老外的职业就是“考古”,或者他对“古代文学”感兴趣,也不可能自学文言文的同时完全跳过现代汉语。

当我们学习中文时,你肯定希望先学现代汉语,再学文言文,再学甲骨文,再学 brainf**k,而不是反过来。

对于 C++ 初学者也是如此:我们首先学会简单明了的,符合现代人思维的 C++23,再逐渐回到专为伺候“古代开发环境”的 C++98。

你的生产环境可能不允许用上 C++20 甚至 C++23 的新标准。

别担心,小彭老师教会你 C++23 的正常写法后,会讲解如何在 C++14、C++98 中写出同样的效果。

这样你学习的时候思路清晰,不用被繁琐的 C++98 “奇技淫巧”干扰,学起来事半功倍;但也“吃过见过”,知道古代 C++98 的应对策略。

Tip

目前企业里主流使用的是 C++14 和 C++17。例如谷歌就明确规定要求 C++17。

开发环境与平台选择

>> 继续阅读剩余章节