Skip to content

继承

继承是面向对象三大特性之一 有些类与类之间存在的特殊关系

我们发现,定义这些类时,下级别的成员除了拥有上一级的特性,还拥有自己的特性.

这时候我们就考虑利用继承的技术,减少重复的代码.

集成的基本语法

例如我们很多网站上所看到的,都有公共的头部,公共的底部,甚至公共的左侧列表,只有中心内容不一样

集成的好处:可以减少重复的代码

class A:public B;

  • A 类称为子类或者叫做派生类

  • B 类称为父类或者叫做基类

派生类的成员,包含两大部分:

一类是从基类继承过来的,一类是自己增加的成员

从基类继承过来的表现其共性,而新增的成员体现其个性.

继承方式

继承语法: class 子类: 继承方式 父类

继承方式一共有三种

  • 公共继承
  • 保护继承
  • 私有继承

菱形继承

典型的菱形继承案例:

菱形继承问题:

  1. 羊继承了动物的数据,驼同样继承了动物的数据,当草泥马使用数据,就会产生二义性.
  2. 草泥马继承自动物的数据继承了两份,其实我们应该清楚,这份数据我们只需要一份就可以.

解决方法:

继承前面加 virtual 关键字后,变成虚继承

此时公共的父类 Animal 称为虚基类

的原理是指针