C++继承:
面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更加容易。这样做,达到了重用代码功能和提高执行时间的效果。
当创建一个类时,你不要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为基类,新建的类称为派生类。
基类和派生类
一个类可以派生自多个类,这意味着,它可以从多个基类继承数据和函数。定义一个派生类,我们使用一个类派生列表来指定基类。
访问控制和继承:
派生类可以访问基类中的所有非私有成员。因此基类成员如果不想被派生类的成员函数访问,则应在基类中声明为private.
继承类型:
我们几乎不使用protected或private继承,通常使用public继承。当使用不同类型的继承时,遵循以下几个规则:
- 公有继承:当一个类派生自公有基类时,基类的公有成员也是派生类的公有成员,基类的保护成员也是派生类的保护成,基类的私有成员不能直接被派生类访问,但是可以通过调用基类的公有和保护成员来访问。
- 保护继承:当一个类派生自保护基类时,基类的公有和保护成员将成为派生类的保护成员。
- 私有继承:当一个类派生自私有基类时,基类的公有和保护成员将成为派生类的私有成员。
多继承:
多继承即一个子类可以有多个父类,它继承了多个父亲的特性。
环状继承(虚拟继承):
这种继承方式会出现派生类的派生类创建两个对象,要解决这个问题就要用虚拟继承。