Files
CPlusPlusThings/site_extras/cplusplus-things-overview.md
light-city dfe1c933b3 docs: address community issue feedback (#5 #338 #142 #246 #136 #303)
- const README: rewrite the space-saving claim per issue #5 follow-ups
  (constant-expression const vs #define immediates; which const qualify
  as constant expressions)
- const README: fix the class-section diagnosis per issue #338 (overload
  resolution picks the const overload; the restriction only surfaces
  once that overload is removed)
- sizeof README: virtual-inheritance result is compiler-dependent
  (GCC merges vbptr+vfptr -> 16, MSVC keeps them separate -> 32) #246
- static README: new section on internal linkage / access restriction
  with anonymous-namespace comparison #142
- 10-day practice: full problem list table + fixed day links #136
- new design_pattern/singleton/singleton_default.hpp: reusable
  thread-safe CRTP singleton template, compile+concurrency tested #303
2026-10-13 19:23:54 +08:00

146 lines
7.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
> 来自 [C++那些事网站](https://light-city.github.io/stories_things/cplusplus-things-overview/) 的文章,由站点同步脚本导出。
# 项目概要
## 1. 项目概述
- 中文名:[**C++那些事**](https://github.com/Light-City/CPlusPlusThings)
- 英文名:[**Stories About C Plus Plus or CPlusPlusThings**](https://github.com/Light-City/CPlusPlusThings)
**C++ 那些事** 是一个面向 C++ 初学者和进阶开发者的开源学习项目。该项目旨在帮助学习者从 C++ 的基础入门到高级进阶,涵盖从语法基础、面向对象编程、模板编程、STL 使用,到多线程并发、内存管理、性能优化等高级主题。此外,项目还深入分析了一些经典的开源库和框架的源码,帮助开发者更好地理解 C++ 在实际项目中的应用。
## 2. 项目目标
- **入门到进阶**:为初学者提供一个系统化的学习路径,帮助他们从零基础逐步掌握 C++ 的核心概念和高级特性。
- **面试准备**:为求职者提供常见 C++ 面试题的解析和实战演练,帮助他们在面试中脱颖而出。
- **源码分析**:通过分析经典开源项目的源码,帮助开发者深入理解 C++ 的设计模式和实现原理。
- **多线程与并发**:深入探讨 C++ 中的多线程编程和并发控制,帮助开发者编写高效、安全的并发程序。
- **性能优化**:介绍 C++ 中的性能优化技巧,帮助开发者编写高效的代码。
## 3. 项目内容
**C++ 那些事** 项目内容丰富,涵盖了 C++ 的各个方面,主要包括以下几个模块:
- **基础进阶**
- **关键字与特性**:如 `const`、`static`、`this`、`inline`、`sizeof`、`virtual`、`volatile`、`explicit`、`friend`、`using`、`::`、`enum`、`decltype` 等关键字的详细解析。
- **函数与指针**:函数指针、纯虚函数和抽象类、`vptr_vtable` 等。
- **数据结构**:`struct`、`union`、位域、引用与指针的区别等。
- **C 实现 C++ 多态**:通过 C 语言实现 C++ 的多态特性。
- **宏与断言**:宏的定义与使用、`assert` 的使用场景。
- **实战系列**
- **10 日狂练**:通过 10 天的密集练习,快速提升 C++ 编程能力。
- **重点实战练习**:针对 C++ 中的重点难点进行实战演练,巩固所学知识。
- **STL 源码剖析**
- **容器**:`array`、`deque`、`queue`、`stack`、`list`、`vector`、`rb_tree`、`set`、`multiset`、`map`、`multimap`、`hashtable`、`unordered_map` 等容器的源码分析。
- **迭代器与特性**:`iterator`、`traits`、`typename` 等。
- **EBO 优化**:STL 设计中的空基类优化(EBO)技术。
- **C++2.0 新特性**
- **C++11 新特性**:如自动类型推导、Lambda 表达式、右值引用、智能指针等;另见站内 [C++11 专题](modern-cpp/cpp11/index.md)。
- **C++17 / C++20**:[C++17 专题](modern-cpp/cpp17/index.md)、[C++20 专题](modern-cpp/cpp20/index.md)。
- **拓展专题**
- **语言机制深入**:mutable、const 全家桶、ABI、尾递归等(见导航「基础进阶 → 语言机制深入」)。
- **内存与调试**、**性能测评**、**项目实战**、**阅读与技巧**:独立导航栏目,含 AddressSanitizer、Benchmark、pybind11、gRPC 等实战文。
- **设计模式**
- **常见设计模式**:如单例模式、工厂模式、观察者模式等在 C++ 中的应用。
- **并发编程**
- **多线程与多进程**:`std::thread`、`std::async`、`std::mutex`、`std::condition_variable` 等多线程编程技术。
- **C++ Concurrency in Action**:深入探讨 C++ 中的并发编程模型与实践。
- **C++ 惯用法**
- **编程风格与惯用法**:探讨 C++ 中的常见编程风格与惯用法,帮助开发者写出更优雅的代码。
- **学习课程**
- **极客时间《现代 C++ 实战 30 讲》**:推荐学习资源,帮助开发者系统学习现代 C++。
- **工具篇**
- **调试与输出工具**:如 `dbg-macro`、`rr` 等调试工具的使用。
- **容器快捷输出工具**:简化容器输出的工具。
- **观察编译过程**:通过工具观察 C++ 代码的编译过程变化。
## 4. 项目特色
- **系统化学习路径**:从基础到进阶,内容循序渐进,适合不同层次的学习者。
- **理论与实践结合**:不仅有理论知识的讲解,还有大量的代码示例和实战项目。
- **源码深度分析**:通过分析经典开源项目的源码,帮助开发者深入理解 C++ 的设计与实现。
- **多线程与并发**:深入探讨 C++ 中的并发编程,帮助开发者编写高效、安全的并发程序。
- **面试导向**:提供常见面试题的解析,帮助求职者更好地准备面试。
## 5. 项目资源
- **在线学习网站**:[C++那些事](https://light-city.github.io/stories_things/)
- **微信公众号**:[光城](https://mp.weixin.qq.com/s/5_Ms8bGbA-PWj5EwmTBaQA)
- **B站视频**:[未来的光城](https://www.bilibili.com/video/BV1Rv4y1H7LB/?vd_source=bb6532dcd5b1d6b26125da900adb618e),项目内容同步至 B站,以视频形式展示,方便学习者观看。
## 6. 参与方式
[**C++那些事**](https://github.com/Light-City/CPlusPlusThings)是一个开源项目,欢迎各位开发者参与贡献。你可以通过以下方式参与:
- **Star 和 Fork**:如果你觉得项目对你有帮助,欢迎在 GitHub 上 Star 和 Fork 项目。
- **提交 PR**:如果你有好的内容或改进建议,欢迎提交 Pull Request。
- **反馈与建议**:如果你在使用过程中遇到问题或有任何建议,欢迎在项目的 Issue 区提出。
## 7. 项目未来规划
- **扩展更多高级主题**:如 C++20 新特性、元编程、编译期计算等。
- **增加更多实战项目**:通过更多的实战项目,帮助开发者将所学知识应用到实际开发中。
- **社区建设**:建立更活跃的社区,鼓励开发者之间的交流与分享。
## 8. 结语
[**C++那些事**](https://github.com/Light-City/CPlusPlusThings)是一个致力于帮助 C++ 学习者从入门到进阶的开源项目。无论你是初学者还是有一定经验的开发者,都可以在这里找到适合自己的学习资源。希望通过这个项目,能够帮助更多的人掌握 C++,并在实际开发中运用自如。
欢迎各位开发者 Star、Fork、PR,共同推动 C++ 社区的发展!
## 9. 关于作者
- **微信**:搜索 `gcxzhang`
- **微信公众号**
<table>
<tbody>
<tr>
<th align="center" style="height=200 width="200">
<img src="assets/images/xq.jpg" height="200" width="200"><br>
知识星球
</th>
<th align="center" style="height=200 width="200">
<img src="assets/images/wechat.jpg" height="200" width="200"><br>
微信公众号
</th>
</tr>
</tbody>
</table>
- **赞赏支持**
<table>
<tbody>
<tr>
<th align="center" style="height=200 width="200">
<img src="assets/images/alipay.jpg" height="200" width="200"><br>
支付宝
</th>
<th align="center" style="height=200 width="200">
<img src="assets/images/wechat.png" height="200" width="200"><br>
微信
</th>
</tr>
</tbody>
</table>