转自:blog.csdn.net/minpro
继承与派生
派生类的声明:
Class 派生类名 : 继承方式 基类名1,继承方式 基类名2,…,继承方式 基类名n
{
派生类成员声明;
}
继承方式:public,protected,private(默认)
在派生过程中,构造函数和析构函数都不被继承。
继承方式 | 基类 | 派生类 | 外部使用者 |
public | public | public | public |
protected | protected |
| |
private |
|
| |
protected | public | protected |
|
protected | protected |
| |
private |
|
| |
private | public | private |
|
protected | private |
| |
private |
|
|
由左向右的运算法则:
1、继承方式&&基类 = 派生类
2、无论是派生类成员还是派生类对象(外部使用者)都无法访问基类的private
3、外部使用者只能通过派生类的对象访问继承来的公有成员
构造函数:
派生类明::派生类明(参数总表): 基类名1(参数表1),…,基类名n(参数表n),内嵌对象名1(内嵌对象参数表1),…,内嵌对象名m(内嵌对象参数表m)
{
派生类新增成员的初始化语句;
}
执行次序:
基类构造函数
内嵌成员对象的构造函数
派生类构造函数体中的内容
析构函数:
与普通析构函数定义形式相同。
在函数体中负责把派生类新增的非对象成员的清理工作做好就够了,系统会自己调用基类及成员对象的析构函数来对基类及对象成员进行清理。