C++(十二):多态

本文探讨C++中的多态特性,重点关注动态多态的实现条件和使用方式,包括虚函数、重写、纯虚函数与抽象类的关系,以及虚析构函数的重要性和区别。通过对纯虚函数和虚析构函数的讲解,揭示了如何在C++中有效地利用多态进行设计和避免内存泄漏。
摘要由CSDN通过智能技术生成

多态

动态多态

动态多态的满足条件:

  1. 存在继承关系;
  2. 子类需要重写父类的虚函数。

虚函数:父类的函数在定义的时候在返回类型前面添加 virtual 关键字。
重写:指的是在子类编写新的函数,但是返回类型、函数名、形参列表完全相同,函数体可以不同。

动态多态的使用:
利用父类的指针或者引用来执行子类的对象。

在这里插入图片描述

动态多态的底层

在这里插入图片描述

纯虚函数与抽象类

virtual void func() = 0;

形如上面的函数称为 纯虚函数 ,拥有纯虚函数的类称为 抽象类 。抽象类是天然的父类,因为它不能实例化对象。在抽象类中的纯虚函数事实上提供了一个接口,子类分别通过这个接口实现各自的功能。

而继承了抽象类的子类必须在类中重写纯虚函数,否则这个子类也被认为是抽象类而不能实例化对象。

因此,当我们有一个类不实现任何功能而希望所有继承它的子类各自实现功能的时候,我们可以写成抽象类。

class AbstractDrinking
{
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值