"C++面向对象程序设计 - 谭浩强编著 - 清华大学出版社"
这篇课件主要介绍了C++中的面向对象程序设计(Object-Oriented Programming, OOP)的概念和特性。面向对象编程是一种将数据和操作数据的方法封装在一起的编程范式,它强调的是对象而不是过程。在C++中,面向对象编程包括了几个关键概念:
1. **程序设计方法**:首先,课件对比了结构化程序设计(Structured Programming, SP)和面向对象程序设计(Object-Oriented Programming, OOP)。结构化程序设计是一种面向过程的方法,它将问题分解为多个功能模块,通过函数对数据进行操作,但其可重用性和适应复杂问题的能力有限。而OOP则将数据和处理数据的方法看作一个整体,通过封装、继承和多态性等特性,提高了代码的重用性和灵活性。
2. **面向对象的基本概念**:OOP的核心概念包括对象、类、数据的抽象和封装、继承性以及多态性。
- **对象**是现实世界中具有特定属性和行为的实体的抽象。
- **类**是创建对象的模板,定义了一组相关属性和操作。
- **数据抽象**是隐藏对象内部细节,只暴露必要的接口,使得用户可以专注于对象的外部行为,而无需关心其实现方式。
- **封装**是将数据和操作这些数据的方法绑定在一起,防止外部代码直接访问对象的内部状态。
- **继承性**允许创建新的类(子类)来扩展已有的类(父类),共享其属性和方法,实现代码复用。
- **多态性**是指同一种操作可以作用于不同的对象,产生不同的效果,这增强了代码的灵活性和通用性。
3. **面向过程程序的结构特点**:面向过程程序设计强调功能分解,程序由一系列处理数据的函数构成,数据结构与算法分离,重点在于过程。这种设计方法适合小型项目,但对于大型软件,由于模块间的调用关系复杂,维护和扩展困难。
4. **实例分析**:以统计一组整数中正负整数个数为例,展示了如何将任务分解为读入数据、统计正负数个数和输出结果三个模块,然后进一步细化每个模块,如检查数字的正负并更新计数。
5. **结构化程序设计的总结与缺陷**:虽然结构化程序设计简化了复杂问题的处理,但它在处理大型软件时显得力不从心,模块间的调用关系可能变得难以管理,且程序的可重用性差,不利于维护。
通过学习这个面向对象的课程,开发者可以理解如何在C++中有效地使用面向对象编程技术,提高软件的可维护性和可扩展性,同时降低复杂项目的开发难度。