基类和派生类
-
派生类构造函数
创建派生类对象时,程序首先调用基类构造函数,然后再调用派生类构造函数。基类构造函数负责初始化继承的数据成员;派生类构造函数主要用于初始化新增的数据成员。派生类的构造函数总是调用一个基类构造函数。可以使用初始化器列表语法指明要使用的基类构造函数,将值传递给基类构造函数,否则将使用默认的基类构造函数。派生类对象过期时,程序将首先调用派生类析构函数,然后再调用基类析构函数。 -
基类和派生类的关系
- 派生类对象可以使用基类的方法,条件是方法不是私有的;
- 基类指针可以在不进行显式类型转换的情况下指向派生类对象;
- 基类引用可以在不进行显式类型转换的情况下引用派生类对象;
- 基类指针或引用只能用于调用基类方法;
- C++要求引用和指针类型与赋给的类型匹配,但这一规则对继承来说是例外。然而,这种例外只是单向的,不可以将基类对象和地址赋给派生类引用和指针。
多态公有继承
-
多态的需求引出
有时我们需要使得“方法的行为取决于调用该方法的对象”。这种较为复杂的行为称为多态