背景介绍
本文旨在为 Java 程序员提供一个最快的入手 C++ 进行常规项目开发的指南。本文假设阅读者具有相当程度对 Java 语言的理解和开发经验,但是出于各种原因需要进行常规的 C++ 项目开发。本文旨在介绍工作中常规 C++ 项目中经常被用到或被误用的内容,从而帮助 Java 程序员快速上手 C++,而非一个面面俱到的 C++ 教程。
已经对 C++ 有一定了解的同学也可能从这篇文章中受益,因为 C++ 的细节问题比较多,这样系统性的过一遍是有好处的。同时也欢迎对 C++ 了解比较多的同学合作共建。
注意
本文以 C++11 标准为基础,部分内容涉及到 C++14/17 中引入的新的标准库(STL,Standard Template Library)内容,但是通常这部分内容可以通过第三方库在 C++11 中使用(例如 Abseil)。这么选择是因为高版本的编译器还没有得到很好的普及和应用,大家在这种情况下最有可能用到的基本上也就是 C++11/14/17 了。
相较于常规的 C++ 教程:
- 本文压缩了关于语法语义方面的知识,因为 C++ 的语法语义和 Java 非常相似,熟练的 Java 程序员应该能无障碍阅读 C++ 代码
- 本文增加了语言内建提供的标准库的对比,用于帮助 Java 程序员快速找到自己经常使用的工具
- 本文特别强调了一些 C++ 开发中经常用错或者不容易用对的地方,以及在这些地方应该遵循一个什么样的原则进行处理
- 本文还介绍了一些常用 C++ 周边生态,包括但不限于:
- 构建系统
- 包管理
- 常见第三方类库
- 常见编码 Idiom
- 静态代码分析
- 动态错误分析
- 代码调试
- Profiling
本文内网原始版本位于 ByteDance 飞书文档。
声明
我目前(2025-09-10)已经不从事 C++ 开发工作。后续可能会不定期根据读者反馈进行更新。欢迎将你的想法和建议在下面的 Discussion 区域留言。