类的继承,是新的类从已有类那里得到已有的特性。从另一个角度来看这个问题,从已有类产生新类的过程就是类的派生。
派生类的定义
class 派生类名:继承方式 基类名1,继承方式 基类名2
{
派生类成员声明
}
访问控制
基类的成员可以有public(公有)、protected(保护)和private(私有)三种访问属性。
基类的自身成员可以对基类中任何一个其他成员进行访问,但是通过基类的对象,就只能访问该类的公有成员。
类的继承方式有public(公有继承)、protected(保护继承)和private(私有继承)三种。
不同的继承方式,导致原来具有不同访问属性的基类成员在派生类中的访问属性也有所不同。
- 派生类中的新增成员访问从基类继承的成员
- 在派生类外部(非类族内的成员),通过派生类的对象访问从基类继承的成员
公有继承
当类的继承方式为公有继承时,基类的公有成员和保护成员的访问属性在派生类中不变,而基类的私有成员不可直接访问。也就是说
- 基类的公有成员和保护成员被继承到派生类中访问属性不变,仍作为派生类的公有成员和保护成员,派生类的其他成员可以直接访问它们。
- 在类族之外只能通过派生类的对象访问从基类继承的公有成员,
- 无论是派生类的成员还是派生类的对象都无法直接访问基类的私有成员。
//Rectangle.h
//7_1.cpp
主函数中首先声明了一个派生类的对象rect,对象生成时调用了系统所产生的默认构造函数,这个函数的功能是什么都不做。然后通过派生类的对象,访问了派生类的公有函数initR,move等,也访问了派生类从基类继承来的公有函数getX(),getY()。这样我们看到了,从一个基类以公有方式产生了派生类之后,在派生类的成员函数中,以及通过派生类的对象如何访问从基类继承的公有成员。