因为呢,含有纯虚函数的类才叫做基类。所以我们先看看纯虚函数。
纯虚函数
1.什么是纯虚函数?
首先呢,要清楚一点的就是纯虚函数一般情况下只有申明,没有定义。因为纯虚函数出现的意义就是为了告诉那些码农们,这个函数是没有实际意义的。虚函数的定义其实很简单,只需要在定义该函数的声明语句的分号之前加“=0”就可以将一个虚函数说明为虚函数,这块儿需要注意了,你得先是虚函数,才能是纯虚函数。
- 纯虚函数的一些特性
2.1 首先 =0 只能出现在类内部的虚函数声明语句处。
2.2 需要注意的是,我们也可以为纯虚函数提供定义,不过定义的函数体必须放在类的外部。因为我们不能在类的内部为一个=0的函数提供函数体。 - 纯虚函数的意义
我们在实际的项目中会碰上这样一种需求,基类中声明并且定义了一个虚函数,基类的第一层派生了继承了这个虚函数,而此时的这个类并不做具体的是实现,而是它的派生类去作具体的实现。太绕了,举个例子说明:
比如说超市的销售。定义一个基类Base,收费的函数实现就是单价乘以个数。但是单超市想搞促销活动的话,就得继续实现了。首先促销都活动有俩种:一种是库存小于某个值时,恢复原价,另一种是根据顾客得购买量来打折。这样得话就需要实现一个类,它得主要作用就是增加库存值和购买超过量这俩个值。然后再派生俩各类来具体实现这俩种打折方案。其中这个类,是肯定不希望去乱初始化得,因为没有意义。
抽象基类
1.什么是抽象基类?
含有纯虚函数的类就叫做抽象基类。
2.基类的一些注意事项
抽象基类是不能创建对象的。