虚函数与多态性(二)

在这里插入图片描述
来过节了!1024!
希望今年可以在csdn上发出更多高质量文章!
努力!
记录下自己的学习记录!!!
冲!

纯虚函数和抽象类

举的一个例子就比如,雇员是基类,然后派生出不同岗位的雇员,为了只说明一个公共界面,来借此实现各自的版本。就是利用基类声明一个纯虚函数,但是没有确切的定义,目的是为了在真正实现的时候,能够看起来更加简洁明了而且这样派生类的同种功能的实现可以根据各自的属性拥有不同的特性,就大大便利了现实生活。

  1. 纯虚函数是一个在基类中说明的虚函数,在基类中没有定义, 要求任何派生类都定义自己的版本,凭此来实现多态性。
  2. 纯虚函数为各派生类提供一个公共接口。
    纯虚函数说明形式:
    virtual 类型 函数名(参数表)= 0 ;
    一个具有纯虚函数的基类称为抽象类。
  3. 抽象类中由于纯虚函数的出现导致了其操作的不完整性,只有在派生类中进行实现后才可谓完整,由此,抽象类是不能声明象的,但是可以声明指针和引用,后面会提及的。只有当派生类实现了对从基类继承过来的纯虚函数的定义,这时派生类被称为具体类,可以声明对象;否则就仍然是抽象类,不能声明对象。
  4. 虚函数的存在仅仅是为了提供一个公共接口,从而统一调用方法,使实现起来更加方便。
    在这里插入图片描述
    不能作为返回类型和参数类型的原因基本都是和之前复制构造函数的原理相似,就是建立了一个匿名对象。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

虚函数和多态性的应用

一个实例

同第一句的实例,可以感受到纯虚函数带来的程序设计的便利性。

异质链表

为了使上述例子当中的不同类的雇员统一组织在一个数据结构中,可以定义抽象类指针数组或链表。
由于这种表中具有不同类类型对象(它们都有共同的基类),所以称为异质链表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

如果树上有叶子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值