天天看點

C++ 類的派生和繼承

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基類的預設的構造函數。

繼續閱讀