面向对象程序设计(C++)
面向对象程序设计(C++)
5万+ 人选课
更新日期:2026/04/01
开课平台学堂在线
开课高校清华大学
开课教师黄震春徐明星
学科专业工学计算机类
开课时间2026/02/04 - 2026/07/21
课程周期24 周
开课状态开课中
每周学时-
课程简介

本课程是“程序设计基础”的后续课程,重点在于提升和强化学习者的抽象思维能力,培养对于变与不变的深刻理解。课程将以C++语言为媒介,以任务驱动为手段,引领学习者掌握如何用C++语言提供的各种技术手段来对复杂世界及其蕴含的关系进行描述。

本课程希望学习者已学习过一门高级语言,已掌握了一些基本的编程技能,也适合于那些希望了解C++语言并运用C++语言进行高质量程序设计的学习者。

课程使用的语言是C++,在通过一定篇幅介绍C++的主要语法知识后,将重点围绕什么是接口、怎么设计、实现和使用接口、如何在程序设计中体现“开闭”原则,以及如何实现数据表示与操作的分离等内容展开介绍和讨论。课程除了介绍传统的面向对象程序设计的基础知识,还会讨论如何进行基于接口编程,如何进行泛型程序设计,还会讨论到C++语言的标准模板库的核心内容。 

课程大纲
第一讲 课程简介与编程环境
1.0 课程定位、教学内容
1.1 编程环境与工具
1.2 main函数的命令行参数
作业一
第二讲 基础语法(1)
2.1 变量定义
2.2 变量的初始化、类型推导与基于范围的循环
2.3 函数重载
2.4 函数参数的缺省值与追踪返回类型的函数
2.5 类的定义
2.6 类成员的访问权限与友元
作业二
第三讲 基础语法(2)
3.1 构造函数析构函数
3.2 赋值运算符重载
3.3 流运算符重载
3.4 函数运算符重载
3.5 下标运算符与自增减运算符重载
3.6 静态成员与常量成员
3.7 对象组合
3.8 移动构造函数
3.9 default修饰符
作业三
第四讲 基础语法(3)
4.1 继承
4.2 函数重写
4.3 虚函数
4.4 自动类型转换
4.5 禁止自动类型转换
4.6 强制类型转换
4.7 函数模板
4.8 类模板
4.9 成员函数模板
4.10 模板特化
作业四
第五讲 找到对象,确定接口
5.0 引言
5.1 从FOP到OOP
5.2 对象在哪里
5.3 接口在哪儿
5.4 实现接口
5.5 变与不变:多态的威力
第六讲 算法横向拆分,分离步骤
6.0 引言
6.1 从负载监视器的设计开始
6.2 接口的分离与单一责任原则
6.3 委托与接口的进一步分解
6.4 分离不同层面的可变性
第七讲 算法纵向拆分,分离表示
7.0 引言
7.1 迭代器
7.2 迭代器的实现
7.3 迭代器与模板
7.4 算法与数据的解耦
7.5 抽象结构与类模板
7.6 函数对象与算法分解
7.7 基于模板的策略模式
第八讲 基于接口组合,应对复杂变化
8.0 引言
8.1 已有资源的组合
8.2 适当引入接口
8.3 接口不变时的功能变化
8.4 装饰
8.5 责任的传递与责任链
8.X 小结
第九讲 增加抽象层级,隔离复杂变化
9.0 引言
9.1 通过封装增加隔离、应对变化
9.2 增加抽象层,应对变化
9.3 相互关联对象的创建
9.4 示例:自动组卷系统设计
9.5 设计思路(上)
9.6 设计思路(中)
9.7 设计思路(下)
9.8 小结
课程总结
期末考试
App 下载
关注我们