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的構造函數。例如,假設程式包含如下聲明:
則 a構造 函數将把實參1,2 給 形 參 x,y, 然後将這些參數作 為 實 參 傳 遞 給 b構 造 函 數 ,後 者 将 創 建 一 個 嵌 套 b對 象 ,并将資料1和 2存儲在該對象中。
如果,隻是聲明:
class::a(x,y)
{
.....
}
那麼隻會調用b基類的預設的構造函數。