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 数组、指针与字符串 数组、指针、引用、动态内存、vectorstring、深拷贝和浅拷贝 查看
0207 7 继承与派生 继承方式、访问控制、类型兼容、派生类构造析构、同名隐藏、虚基类 查看
0208 8 多态性 函数重载、运算符重载、虚函数、动态绑定、虚析构、纯虚函数、抽象类 查看

4.3 数据组织与泛型

编号 Chap 主题 复盘重点 笔记
0209 9 群体类和群体数据的组织 类模板、数组类、链表、栈、队列、双端队列、二叉树 查看
0210 10 泛型程序设计与 C++ 标准模板库 STL 容器、迭代器、算法、函数对象、排序、顺序查找、折半查找 查看

4.4 工程健壮性

编号 Chap 主题 复盘重点 笔记
0211 11 流类库与输入输出 标准流、文件流、字符串流、格式控制、文本文件、二进制文件、对象保存 查看
0212 12 异常处理 trythrowcatch、栈展开、标准异常、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++ 的更稳妥写法。

这门课不用一次背完,最好按“先写出来,再解释每一行,再改成更好的版本”的方式复盘。后面学习数据结构、安全开发和项目实践时,指针、对象生命周期、文件处理和异常安全会反复回来。