C++抽象类的定义解析

村口二丫2021-12-13 11:40

  纯虚函数是基类中声明的虚函数,在基类中没有定义,但要求任何衍生类定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后添加=0.有虚函数的类称为抽象类。

C++抽象类的定义解析

  抽象类有以下几个特点:

  (1)抽象类只能用作其他类别的基类,不能建立抽象类对象。

  (2)抽象类型不能用作参数类型、函数返回类型或显式转换类型。

  (3)指向抽象类的指针和引用可以定义,指向其衍生类,从而实现多态性。

  一、定义

  在面向对象的概念中,我们知道所有的对象都是通过类来描述的,但反过来却不是这样。并不是所有的类都是用来描述对象的。如果一个类没有足够的信息来描述一个特定的对象,这个类就是抽象类。纯虚函数是基类中声明的虚函数,在基类中没有定义,但要求任何衍生类定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后添加=0.

  二、引入原因:

  1、为了方便多态特性的使用,我们经常需要在基类中定义虚拟函数。

  2、在许多情况下,基本类别本身的生成对象是不合理的。例如,动物作为一个基本类别,可以产生老虎、孔雀等子类,但动物本身显然是不合理的。

  为了解决上述问题,引入了纯虚拟函数的概念,将函数定义为纯虚拟函数,编译器要求在衍生类中重载以实现多态性。同时,含有纯虚拟函数的类称为抽象类,不能生成对象。

  三、相似概念:

  1、多态性

  指当同一对象收到不同的消息或不同的对象收到相同的消息时,不同的实现动作。C++支持两种多态性:编译时多态性和运行时多态性。

  编译时多态性:通过重载函数实现。

  运行时多态性:通过虚函数实现。

  2、虚函数

  虚拟函数是在基类中被声明为virtual并在衍生类中重新定义的成员函数,可以实现成员函数的动态重载。

  3、抽象类

  包含纯虚函数的类称为抽象类。由于抽象类包含未定义的纯虚函数,抽象类的对象无法定义。

  以上就是开课吧小编为大家整理发布的“C++抽象类的定义解析”一文,更多相关内容尽在开课吧广场C++教程频道。

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享