C++中,继承就是在一个已存在的类的基础上建立一个新的类。已存在的类称为基类,又称父类;新建立类称为派生类,又称为子类。
基类是对派生类的抽象,派生类是对基类的具体化。
(一)派生类的定义与构成
1)派生类的定义
class 派生类名:类派生列表{
成员列表
};
2)派生类的构成
派生类由两部分组成:第一部分是从基类继承得到的,另一部分是自己定义的新成员,这些成员仍然分为三种访问属性。
注意,友元关系是不能继承的:一方面,基类的友元对派生类成员没有特殊的访问权限;另一方面,如果基类被授予了友元关系,则只有基类有特殊访问权限,该基类的派生类不能访问授予友元关系的类。
实际编程中,设计一个派生类包括三个方面工作:
a)从基类接收成员。
除了构造函数与析构函数之外,派生类会把基类的全部成员继承过来。
b)调整基类成员的访问。
程序员可以对接收的成员指定访问策略。
c)在定义派生类时增加新的成员。另外还应该自己定义派生类的构造函数和析构函数,因为它们不能从基类继承过来。
(二)派生类成员的访问
不同的继承方式决定了基类成员在派生类中的访问属性
1)公有继承
基类的公有成员和保护成员在派生类中保持原有访问属性,私有成员仍为基类所有。
2)私有继承
基类的所有成员在继承类中为私有成员。
3ÿ