C++开发3天复习大纲(增强版)
·
C++开发3天复习大纲(增强版)
根据你的需求,我对之前的复习大纲进行了调整,强化了C++11的内容,确保三天内高效覆盖所有核心考点:

第一天:C++核心标准(C++11/17/21)+ Linux系统编程
上午:C++核心标准(按版本优先级)
-
C++11核心特性(基础中的基础,必掌握)
- 智能指针:
std::shared_ptr(引用计数)、std::unique_ptr(独占所有权)、std::weak_ptr(解决循环引用),使用场景与实现原理 - 移动语义:
std::move、右值引用&&、移动构造函数,与拷贝语义的区别及性能优势 - lambda表达式:语法
[capture](params) -> return_type { body },捕获方式(值捕获、引用捕获、混合捕获) - 范围for循环:
for (auto &elem : container)的使用条件 auto类型推导:规则与适用场景,与decltype的区别- 线程库基础:
std::thread、std::mutex、std::condition_variable
- 智能指针:
-
C++17核心特性
- 结构化绑定:
auto [key, value] = map_element在容器遍历中的应用 std::string_view:与std::string的转换及使用注意事项if constexpr:编译期条件判断,在模板中的应用- 并行算法:
std::for_each(std::execution::par, ...)的基本使用 - 折叠表达式:处理可变参数模板的简化语法
- 结构化绑定:
-
C++20/21重点特性
- 概念(Concepts):约束模板参数,简化SFINAE的使用
- 协程基础:
co_await、co_return的概念及异步编程场景 - 三路比较运算符
<=>:简化比较逻辑的实现
下午:Linux系统编程与多线程
-
Linux系统编程基础
- 文件操作:
open/read/write/close与C标准库的区别,文件描述符 - 进程控制:
fork/exec/wait系统调用,进程间通信方式(管道、信号、共享内存) - 信号处理:常见信号(SIGINT、SIGTERM、SIGPIPE)及处理方式
- 文件操作:
-
多线程开发深入
- POSIX线程API:
pthread_create/pthread_join/pthread_mutex - 线程同步:互斥锁、条件变量、读写锁的使用场景
- 线程池实现原理:任务队列、工作线程、任务调度策略
- 死锁检测与避免:加锁顺序、超时机制、资源分级
- POSIX线程API:
第二天:网络编程 + 分布式系统原理
上午:网络编程深度解析
-
TCP/IP协议栈
- TCP协议:三次握手/四次挥手过程,拥塞控制算法(慢启动、拥塞避免)
- UDP协议:特点与适用场景,可靠性增强方案(应用层重传、校验)
- socket编程模型:TCP服务端/客户端完整流程,UDP编程差异
-
高级I/O模型
- IO多路复用:
select/poll/epoll的原理与性能对比 epoll详解:LT/ET模式区别,边缘触发下的读写策略- Reactor模式:事件驱动模型的实现思路与代码框架
- IO多路复用:
-
常用通信协议
- WebSocket:握手流程、帧格式、心跳机制
- gRPC:服务定义(.proto文件)、四种服务类型、流式通信
- HTTP/HTTPS:请求方法、状态码、HTTPS加密原理
下午:分布式系统核心原理
-
分布式基础理论
- CAP定理:一致性、可用性、分区容错性的权衡
- BASE理论:基本可用、软状态、最终一致性的实际应用
- 分布式事务:2PC、3PC、TCC、Saga等方案对比
-
关键技术点
- 服务发现:原理与主流方案(etcd、Consul、Zookeeper)
- 负载均衡:算法(轮询、加权、一致性哈希)与实现
- 分布式锁:基于Redis/Zookeeper的实现方案
- 数据一致性:Raft协议核心流程(选举、日志复制)
第三天:数据序列化 + CMake + 综合演练
上午:数据序列化技术
-
主流序列化框架详解
- Protocol Buffers:
- .proto文件语法(消息定义、字段类型、服务定义)
- 编译流程与C++接口使用
- 版本兼容性处理
- FlatBuffers:
- 零拷贝原理与内存布局
- 与Protobuf的性能对比
- MessagePack:
- 与JSON的兼容性
- C++实现库(msgpack-c)的使用
- Protocol Buffers:
-
序列化方案选型
- 性能优先场景:FlatBuffers vs Protobuf
- 兼容性优先场景:Protobuf的优势
- 可读性需求:MessagePack vs JSON
下午:CMake与综合复习
-
CMake实战
- 基本语法:
cmake_minimum_required、project、add_executable、add_library - 编译配置:指定C++标准、编译选项、宏定义
- 依赖管理:
find_package、target_link_libraries、include_directories - 多目录项目:
add_subdirectory、target_include_directories - 示例配置:
cmake_minimum_required(VERSION 3.15) project(NetworkApp) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(Protobuf REQUIRED) find_package(Threads REQUIRED) add_executable(server src/server.cpp src/network.cpp proto/messages.pb.cc ) target_include_directories(server PRIVATE include PRIVATE ${PROTOBUF_INCLUDE_DIRS} ) target_link_libraries(server PRIVATE ${PROTOBUF_LIBRARIES} PRIVATE Threads::Threads )
- 基本语法:
-
综合复习与准备
- 重点难点回顾:整理三天内的薄弱环节
- 典型题演练:
- C++:智能指针实现原理、移动语义与完美转发
- 网络:epoll边缘触发与水平触发的实际应用
- 多线程:线程池设计与实现、死锁预防策略
- 项目经验梳理:将技术点与实际项目结合,准备2-3个亮点案例
通过这三天的系统复习,可以全面覆盖所需的核心知识点,重点突出C++标准特性、网络编程和多线程技术,同时兼顾分布式系统和工程工具的掌握。建议每天结束前花30分钟进行总结和自我测试,确保知识点的巩固。
更多推荐


所有评论(0)