1.outline
已有类派生出新的类,新的类继承了其原有类的特征
1). 添加新的数据
2).添加新的功能
3).修改类的方法
···
从一个类派生出另一个类时,原始类称为基类,继承类称为派生类。
···
##2.基本操作
class a:public b
{
....
}
指 出 a类的基类是b类。上述特殊的声明头表明b是个公有基类,这被称为公有派生。派生类对象包含基类对象。使用公有派生,基类的公有成员将成为派生类的公有成员;基类的私有部分也将成为派生类的一部分,但只能通过基类的公有和保护方法访问。
上述代码做了两件事:
1).派生类对象存储了基类的数据成员( 派生类继承了基类的实现);
2). 派生类对象可以使用基类的方法(派生类继承了基类的接口)。
派生类a需要做的:
1). 派生类需要自己的构造函数。
2). 派生类可以根据需要添加额外的数据成员和成员函数.
2.权限
a.派生类不能直接访问基类的私有成员,必须通过基类的方法
class::a(unsigned int x, unsigned int y):b(x,y)
{
.....
}
其
中 :b(x, y) 是 成 员 初 始 化 列 表 。 它 是 可 执 行 的 代 码 , 调用b的构造函数。例如,假设程序包含如下声明:
class::aa(1, 2);
则 a构造 函数将把实参1,2 给 形 参 x,y, 然后将这些参数作 为 实 参 传 递 给 b构 造 函 数 ,后 者 将 创 建 一 个 嵌 套 b对 象 ,并将数据1和 2存储在该对象中。
如果,只是声明:
class::a(x,y)
{
.....
}
那么只会调用b基类的默认的构造函数。