这是一个 C++ 学习与实践的代码仓库,包含了指针、线程、设计模式等多个方面的示例代码和最佳实践。
Cpp_code_guider/
├── get_to_know_pointer/ # 指针相关示例
├── get_to_know_thread/ # 线程相关示例
├── design_pattern/ # 设计模式示例
├── untamed/ # 其他知识点示例
└── beautiful_code_preview/ # 优秀代码预览
-
循环引用问题 (
loop_reference_demo.cpp)- 演示
shared_ptr可能导致的循环引用问题 - 展示如何使用
weak_ptr避免内存泄漏
- 演示
-
资源缓存 (
resource_cache_demo.cpp)- 资源管理的实践示例
-
Future/Promise (
use_future_promise_control_thread.cpp)- 使用
std::future和std::promise进行线程间通信
- 使用
-
条件变量 (
use_condition_variable_control_thread.cpp)- 使用条件变量控制线程执行
-
异步任务 (
use_async_create_mission.cpp)- 使用
std::async创建异步任务
- 使用
-
生产者消费者 (
producer_consumer_mutex_cond.cpp)- 经典的生产者-消费者模式实现
-
线程通知 (
notify_thread.cpp)- 线程间通知机制
-
线程交替打印 (
thread_print_ABC.cpp,thread_print_ABC2.cpp)- 多线程交替执行的示例
-
单例模式 (
singleton/)- 线程安全的单例模式实现
-
观察者模式 (
Observer/simple_observer.cpp)- 观察者模式的简单实现
-
策略模式 (
Strategy/)- 策略模式的使用示例(包含对比代码)
-
依赖注入 (
DI/car_1.cpp)- 依赖注入模式的示例
- 构造和析构时机
- 友元函数
- 枚举类
- 引用和指针的使用
- 内存管理(malloc/free)
- FastDDS MPSC 队列 (
fastdds_MPSC/DBQueue.hpp)- 多生产者单消费者队列的优秀实现
所有示例代码都可以使用以下方式编译:
g++ <filename>.cpp -o <output_name> -std=c++11
./<output_name>或者使用 C++14/17/20:
g++ <filename>.cpp -o <output_name> -std=c++17
./<output_name>- 每个目录下的示例代码都是独立的,可以直接编译运行
- 代码中包含详细的中文注释,说明关键概念和注意事项
- 建议按照目录顺序学习,从基础到进阶
- 部分示例代码演示了常见错误(如循环引用),请注意区分正确和错误的用法
- 线程相关的示例需要注意线程安全问题
- 建议在理解代码的基础上进行实验和修改
- 指针学习:先理解基本概念,再学习智能指针的使用
- 线程学习:从简单的线程创建开始,逐步学习同步机制
- 设计模式:对比使用和不使用设计模式的代码,理解其优势
- 实践:运行代码,观察输出,修改参数,加深理解
作者: jev
最后更新: 2025-11-24