课程详情
课程评价
spContent=本课程是C语言的进阶课程,将帮助C程序员实现:从C语言到C++语言的进阶;从结构化程序设计到面向对象程序设计的进阶。选修本课程需具备C语言基础,或已选修本课程的上半部分《C++语言程序设计(上)》(阚道宏)。
—— 课程团队
课程概述

7 面向对象程序设计之一

本章内容:面向对象程序设计方法将程序中的数据元素和算法元素根据其内在关联关系进行分类管理,这就形成了“”的概念。分类可以更好地管理。类相当于是一种自定义数据类型,用类所定义的变量称为“对象”。本章通过具体案例演示了结构化程序设计是如何演变到面向对象程序设计的。本章内容包括类的定义、对象的定义与访问、对象的构造与析构、类中的常成员与静态成员、以及类的友元等。

本章要点:一是读者必须从代码分类管理、数据类型、归纳抽象、代码重用等多个维度才能准确理解类与对象的概念;二是读者需认真学习类与对象编程的具体语法规则;三是深入领会面向对象程序设计通过设置访问权限来实现类封装的基本原理;四是深入了解对象的构造与析构过程,程序员通过编写构造与析构函数来参与对象的构造与析构过程;五是读者要从2个不同的角度,即定义类的程序员和使用类定义对象的程序员,这样才能更容易地理解类与对象相关的各种语法知识。

 

8章面向对象程序设计之二

本章内容:重用类代码有3种方式,分别是使用类定义对象、类的组合和类的继承。本章讲解类的组合与继承。程序员可以基于已有的零件类来定义新的整体类,这就是类的组合。程序员可以继承已有的基类来定义新的派生类,这就是类的继承与派生。利用派生类和基类之间的这种特殊关系可以进一步提高程序代码的可重用性,这就是面向对象程序设计中的对象多态技术。本章将具体讲解与多态相关的运算符重载、虚函数和抽象类等概念。最后本章将简单讨论一下类的多继承。

本章要点:一是让读者学会使用组合和继承的方法来定义新类,这样可以提高类代码的开发效率;二是读者应理解,类在组合或继承时可以进行二次封装;三是从提高对象处理算法代码可重用性的角度可以更容易地理解对象多态性;四是多继承会导致语法陷阱,新的面向对象程序设计语言(例如JavaC#)已不再支持类的多继承,而只支持接口的多继承,读者只需要了解多继承的基本原理即可。

 

9 流类库与文件处理

本章内容:C语言通过输入/输出函数(例如scanfprintf)实现了数据的输入和输出。C++语言则是通过输入/输出流类为程序员提供了输入或输出的功能。这些输入/输出流类都是从类ios派生出来的,组成了一个以ios为基类的类族,这个类族被称为C++语言的流类库。本章将介绍流类库中3组不同功能的输入/输出流类,它们分别是:通用输入/输出流类,提供通用的输入/输出(简称标准I/O)功能;文件输入/输出流类,提供文件输入/输出(简称文件I/O)功能。字符串输入/输出流类,提供字符串输入/输出(简称字符串I/O)功能。

本章要点:一是读者应理解之前所用的cincout指令实际上分别是通用输入/输出流类的对象;二是通过本章学习,读者可以从侧面了解全球顶尖的C++程序员是如何来设计和编写类的,这样可以帮助读者进一步深入体会前面所学习的各种面向对象程序设计知识;三是重点学习如何进行文件读写操作,大部分程序都需要使用文件来保存数据。

 

    10 C++标准库

    章内容:C++语言全盘继承了C语言的标准C库,另外又增加了一些新的库。新库中包含一些新增的系统函数,但更多的是为面向对象程序设计方法所提供的系统类库,这些新库被统称为C++标准库。为了更好地凝练源代码,C++语言引入了模板技术,其中包括函数模板类模板。模板技术是一种代码重用技术,C++标准库在编写时就采用了模板技术,因此标准库能以较少的代码量却提供了很强大的功能。本章内容重点介绍模板技术、C++语言的异常处理机制、以及C++标准库所提供的数据集合存储及处理功能。

    本章要点:一是让读者了解如何使用模板技术来提高函数和类代码的可重用性;二是重点学习C++语言的异常处理机制;三是初步掌握如何使用C++标准库中的向量类、列表类、集合类和映射类来存储和处理数据集合。

预备知识

C语言程序设计》,或

已选修中国大学MOOC课程《C++语言程序设计(上)》(阚道宏 主讲)

证书要求

1、完成课程教学视频的学习;

2、按时完成单元测验与单元作业,并完成对他人单元作业的互评;

3、积极参与课堂讨论。

参考资料

参考教材

《C++语言程序设计》(MOOC版),阚道宏编著

清华大学出版社,2016

ISBN 978-7-302-42104-7