钱能C++教程第12章:多态与继承讲解

需积分: 3 3 下载量 7 浏览量 更新于2024-07-30 收藏 132KB PPT 举报
在《钱能C++程序设计教程(第二版)》的第十二章——多态性中,作者深入探讨了C++编程中的核心概念。本章分为以下几个关键部分: 1. **继承召唤多态(Inheritance Summon-up Polymorphism)**:这部分强调了继承在多态中的作用。在C++中,子类可以继承父类,并实现对父类的扩展或替换行为。例如,`Student` 类是`GraduateStudent` 的基类,一个`Student` 对象可以被赋值给`GraduateStudent` 类型的变量,但反过来则不允许。这是因为`Student` 不是`GraduateStudent` 的实例,尽管它们之间存在继承关系。 2. **同化效应与类型转换**:通过展示`display()` 方法的行为,展示了不同类型的对象在调用相同方法时可能出现的多态性。在`Student` 和`GraduateStudent` 类中,尽管都重写了`display()` 函数,但实例化各自的对象并进行类型转换后,调用显示的方法会根据对象的实际类型输出相应结果。当一个`GraduateStudent` 被赋值给`Student` 类型的引用或指针时,虽然类型上发生了变化,但实际调用的是`Student` 类的默认行为。 3. **抽象编程与避免虚函数误用**:抽象编程是指设计出具有通用接口但具体功能可由子类实现的类。虚函数是一种实现多态的关键机制,它允许在基类指针上调用子类的特定版本。然而,错误地使用虚函数可能导致性能问题或者预期之外的行为,因此理解何时以及如何正确地使用虚函数至关重要。 4. **精简共性的类与多态编程**:在设计类结构时,应避免过度继承导致的复杂性,通过简化共享属性的类来提高代码的可维护性和复用性。同时,多态编程不仅仅是关于继承,还包括接口和模板等技术,它们允许编写更灵活且适应性强的代码。 通过学习这些内容,学生能够更好地理解和掌握C++语言中的多态特性,包括继承、类型转换和动态绑定,这对于高效地进行面向对象编程和创建可扩展软件架构具有重要意义。本章的教学内容旨在帮助程序员在实践中应用这些概念,提升编程技能和软件设计能力。