1、课程定位
C++ 语言程序设计是疾风计划第一阶段的第二门基础课,主要用来把“会写一点程序”推进到“能用类型、函数、类、对象和标准库组织程序”。这组笔记以郑莉老师《C++语言程序设计(第 4 版)》为主线,按教材 12 章拆成 0201~0212。
| 项目 |
内容 |
| 课程 |
C++语言程序设计 |
| 教师 |
郑莉 |
| 院校 |
清华大学 |
| 学习定位 |
专业基础课,衔接后面的数据结构、面向对象课程设计、安全开发和工程项目 |
| 笔记范围 |
0201~0212,对应 Chap 1 到 Chap 12 |
这组笔记已经整理成逐章复盘页:每章都有资料清单、学习目标、核心概念、代码复盘、课后习题答案和复盘任务。0200 只作为总入口,方便按章节或按主题跳转。
2、资料入口
| 资料 |
内容 |
入口 |
| 教材 Markdown |
《C++语言程序设计(第 4 版)》郑莉,PDF 抽取后的 Markdown 资料 |
下载 |
| 课后习题答案 |
习题答案已按章整理进 0201~0212,也保留原始抽取资料 |
下载 |
| 例题源代码 |
C++V5 课程配套源代码 |
下载 |
| VS2019 工程 |
C++V5 配套 Visual Studio 2019 solution |
下载 |
3、学习主线
| 部分 |
章节 |
核心问题 |
后续连接 |
| 程序设计基础 |
Chap 1-3 |
程序语言如何发展,C++ 简单程序如何写,函数如何拆分逻辑 |
高级语言程序设计、算法入门 |
| 面向对象基础 |
Chap 4-8 |
类、对象、构造析构、共享保护、继承和多态如何组织程序 |
面向对象程序设计、项目实践 |
| 数据组织与泛型 |
Chap 9-10 |
数组类、链表、栈、队列、模板和 STL 如何管理群体数据 |
数据结构、算法设计 |
| 工程健壮性 |
Chap 11-12 |
输入输出、文件、流状态、异常和资源释放如何服务真实程序 |
文件处理、项目调试、安全开发 |
4、章节索引
4.1 程序设计基础
| 编号 |
Chap |
主题 |
复盘重点 |
笔记 |
| 0201 |
1 |
绪论 |
程序语言发展、面向对象基本思想、二进制、补码、程序开发流程 |
查看 |
| 0202 |
2 |
C++ 简单程序设计 |
基本类型、常量变量、表达式、输入输出、选择结构、循环结构、枚举和结构体 |
查看 |
| 0203 |
3 |
函数 |
函数定义、函数原型、值传递、引用传递、默认参数、重载、递归、模板函数 |
查看 |
4.2 面向对象基础
| 编号 |
Chap |
主题 |
复盘重点 |
笔记 |
| 0204 |
4 |
类与对象 |
抽象、封装、访问控制、构造函数、复制构造、析构函数、类的组合 |
查看 |
| 0205 |
5 |
数据的共享与保护 |
作用域、可见性、生存期、静态成员、友元、const、多文件结构 |
查看 |
| 0206 |
6 |
数组、指针与字符串 |
数组、指针、引用、动态内存、vector、string、深拷贝和浅拷贝 |
查看 |
| 0207 |
7 |
继承与派生 |
继承方式、访问控制、类型兼容、派生类构造析构、同名隐藏、虚基类 |
查看 |
| 0208 |
8 |
多态性 |
函数重载、运算符重载、虚函数、动态绑定、虚析构、纯虚函数、抽象类 |
查看 |
4.3 数据组织与泛型
| 编号 |
Chap |
主题 |
复盘重点 |
笔记 |
| 0209 |
9 |
群体类和群体数据的组织 |
类模板、数组类、链表、栈、队列、双端队列、二叉树 |
查看 |
| 0210 |
10 |
泛型程序设计与 C++ 标准模板库 |
STL 容器、迭代器、算法、函数对象、排序、顺序查找、折半查找 |
查看 |
4.4 工程健壮性
| 编号 |
Chap |
主题 |
复盘重点 |
笔记 |
| 0211 |
11 |
流类库与输入输出 |
标准流、文件流、字符串流、格式控制、文本文件、二进制文件、对象保存 |
查看 |
| 0212 |
12 |
异常处理 |
try、throw、catch、栈展开、标准异常、noexcept、RAII、异常安全 |
查看 |
5、复盘顺序
| 场景 |
建议顺序 |
| 语法快速回炉 |
0201 -> 0202 -> 0203 |
| 面向对象补强 |
0204 -> 0205 -> 0206 -> 0207 -> 0208 |
| 数据结构前置 |
0206 -> 0209 -> 0210 |
| 项目代码能力 |
0203 -> 0204 -> 0205 -> 0206 -> 0211 -> 0212 |
| 安全开发前置 |
0202 -> 0203 -> 0206 -> 0207 -> 0208 -> 0211 -> 0212 |
6、重点复盘表
| 能力 |
对应章节 |
检查问题 |
| 读写基础代码 |
0202、0203 |
能否独立写输入、判断、循环、函数拆分和递归 |
| 管理对象生命周期 |
0204、0205、0206 |
构造、复制、赋值、析构、动态内存是否能说清楚 |
| 理解面向对象设计 |
0204、0207、0208 |
类、继承、多态、虚函数和抽象类是否能用代码说明 |
| 使用标准库 |
0209、0210、0211 |
容器、迭代器、算法、流对象和文件流是否能正确组合 |
| 写稳定程序 |
0205、0206、0211、0212 |
出错时资源是否释放,输入是否检查,异常是否被合理处理 |
7、整理口径
每章按同一套结构整理:资料清单、学习目标、章节目录、核心概念、代码复盘、课后习题答案、复盘任务。代码以能复盘、能运行、能解释为主;涉及旧式写法时,笔记会补充现代 C++ 的更稳妥写法。
这门课不用一次背完,最好按“先写出来,再解释每一行,再改成更好的版本”的方式复盘。后面学习数据结构、安全开发和项目实践时,指针、对象生命周期、文件处理和异常安全会反复回来。