C++语言学习线路
[ 2025.4.18更新 ]
第一阶段:语言入门(基础语法)
目标:理解 C++ 的基本语法和程序结构,能编写简单程序。
1. C++ 概述 学习C++入门
- 什么是 C++
- C 与 C++ 的区别
- C++ 的应用领域(系统开发、游戏、嵌入式、高性能计算)
2. 开发环境配置 学习C++环境
- 安装编译器(GCC / Clang / MSVC)
- 配置 IDE(Visual Studio / CLion / VSCode)
- 编译与运行第一个程序
3. 基本语法
- 数据类型与变量
- 运算符:算术、逻辑、位运算 学习运算基础
- 控制结构:if / else、switch、for、while、do...while 学习if控制|学习while控制
- 输入输出:cin / cout(iostream)
- 数组 学习数组
- 类型系统 学习类型系统
- 结构体和枚举 学习结构体和枚举
第二阶段:函数与结构化编程
目标:掌握函数调用机制,理解作用域与代码组织方式。
1. 函数 学习函数
- 函数声明与定义
- 值传递与引用传递
- 默认参数
- 函数重载(静态多态)
- lambda匿名函数 学习匿名函数
2. 代码组织
第三阶段:内存管理与指针机制
目标:掌握 C++ 内存模型与指针使用,理解智能指针用法。
1. 指针与引用
2. 动态内存管理 学习内存模型
3. 智能指针(C++11 起) 学习RAII智能指针
- unique_ptr
- shared_ptr / weak_ptr
- 生命周期与引用计数
第四阶段:面向对象编程(OOP)
目标:掌握 C++ 的类与继承体系,理解多态和虚函数原理。
1. 类与结构体 学习面向对象
- 成员变量与成员函数
- 构造函数、析构函数
- this 指针与对象拷贝
- 结构体和枚举
2. 面向对象三大特性
3. C++ 特有规则
- Rule of Three / Rule of Five / Rule of Zero 学习Rule资源管理
- 抽象类与接口设计 学习抽象类和接口
第五阶段:模板与元编程
目标:掌握泛型编程能力,了解模板高级特性。
1. 模板基础 学习模板基础
- 函数模板、类模板
- 模板参数推导
2. 高级模板技巧 学习模板高级技巧
- 偏特化与全特化
- 可变参数模板(Variadic Templates)
- SFINAE(Substitution Failure Is Not An Error)
- Type Traits 与模板元编程
3. 常用模板编程 Idioms 学习模板Idioms
- CRTP(Curiously Recurring Template Pattern)
- Pimpl(指针隐藏实现)
第六阶段:标准库与 STL 容器
目标:熟练使用 STL 提供的容器与算法。
1. 容器
- 顺序容器:vector、list、deque 学习vector|学习List链表|学习Deque双端队列
- 关联容器:set、unordered_set、map、unordered_map 学习集合set|学习map|学习unordered_map
- 适配器容器:stack、queue 学习stack/queue
2. 算法与迭代器
3. 工具类 学习工具类
- std::string
- 时间处理
- std::optional / std::variant / std::any(C++17)
第七阶段:异常处理与调试工具
目标:掌握错误处理机制,能使用调试器排查问题。
1. 异常处理 学习异常
- try / catch / throw
- 自定义异常类
- 程序崩溃原因与访问违规
2. 调试器与工具链 学习调试工具
- GDB / WinDbg 调试技巧
- 编译阶段与调试符号
- 断点、内存查看、调用栈
第八阶段:构建系统与依赖管理
目标:了解项目构建流程与常用包管理工具。
1. 构建系统
- Makefile
- CMake
- Ninja 构建系统
2. 包管理工具
- vcpkg
- Conan
- NuGet / Spack
第九阶段:现代 C++ 与生态实践
目标:掌握 C++11/14/17/20 标准中的重要特性。
1. 自动类型推导 学习auto自动推导
- auto、decltype、constexpr
2. 并发与多线程 学习多线程
- std::thread
- std::mutex / condition_variable 学习高级并发
3. 第三方库与框架
- 图形界面:Qt
- 数学/图像:OpenCV、Eigen
- 网络与 RPC:Boost、gRPC、POCO
- 机器学习:TensorFlow C++、PyTorch C++
4. 日志与测试框架
- 日志库:spdlog、fmt
- 单元测试:gtest、Catch2
附录:推荐资源与学习建议
推荐资源:
学习建议:
- 一边学语法一边写小项目(如图书管理系统、贪吃蛇)
- 多阅读开源库源码理解底层设计
- 持续关注 C++ 标准演进(C++20 / C++23)