mirror of
https://github.com/Light-City/CPlusPlusThings.git
synced 2026-10-29 03:14:06 +08:00
- 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
146 lines
7.2 KiB
Markdown
146 lines
7.2 KiB
Markdown
> 来自 [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> |