C++ 類的派生和繼承
阿新 • • 發佈:2019-02-14
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基類的預設的建構函式。