类继承(一)

本文介绍了面向对象编程中的核心概念——类和继承,包括如何通过继承扩展功能和修改行为。接着讨论了多态性,特别是在公有继承中的应用,以及如何通过虚函数实现动态联编。动态联编允许在运行时根据对象的实际类型选择正确的方法,增强了代码的灵活性和可维护性。
摘要由CSDN通过智能技术生成

1. 类和继承

面向对象编程的主要目的之一就是提供可以重复使用的代码,减少开发周期,提高开发效率。

继承可以完成的一些工作:

  • 在已有类的基础上添加功能。
  • 给类添加新的数据成员。
  • 可以修改类方法的行为。

派生类与基类之间的关系:

  • 派生类对象可以使用基类(公有的)方法。
  • 基类指针可以在不进行显示类型转换的情况下指向派生类对象,但只能调用基类方法。
  • 基类引用可以在不进行显示类型转换的情况先引用派生类对象,但只能调用基类方法。
2. 多态公有继承

在实际开发过程中,我们有时候希望同一个方法在派生类和基类中的行为是不同的,也就是说,方法的行为取决于调用该方法的对象,即同一个方法的行为随上下文而异,我们将这种复杂的行为称为多态(具有多种形态)。

实现多态公有继承的方法:

  • 在派生类中重新定义基类的方法。

  • 使用虚方法(虚函数)。

3. 静态联编和动态联编

函数名联编:编译器将源代码中的函数调用解释为执行特定的函数代码称为函数名联编。

我们将在编译过程中进行联编称为静态联编(早期联编)。但对于虚函数这种情况,编译器在编译的时候并不一定知道用户将会选择哪种类型的对象,因此,编译器必须生成能够在程序运行时根据用户的选择正确的虚函数的代码。我们将这种在程序运行过程中选择对应的方法(函数)的联编称为动态联编(晚期联编)
因此,动态联编是在虚函数的支持下实现的。

动态联编主要包含一下方面:

  • 成员函数必须声明为虚函数,即前面加virtual。

  • 如果基类中对某个成员函数声明了虚函数,则其派生类中的该成员函数不需要再声明。

从代码维护的层面考虑,随着类的层级的扩展,动态联编提高了代码的灵活性和问题的抽象性,使得程序的维护成本大大降低。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艰默

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值