繼承:在已有類的基礎上創造新類。其中已有類稱為基類或父類,創造出的新類稱為派生類或子類。
繼承的格式為 class 派生類名:基類名。
繼承的型別我們一般都是使用公有繼承。
在繼承時需要將基類的資料成員宣告為保護型別,因為派生類無法直接使用基類的私有成員。
派生類中包括了基類中的所有成員(除建構函式和析構函式)。
在派生類中定義與基類中同名的成員可以遮蔽基類中的成員。
通過顯示的使用類名限定符: 類名::成員 可以使用被遮蔽了的基類成員。
派生類訪問靜態成員:
基類中定義的靜態成員可以被所有派生類訪問。在派生類中訪問靜態成員的方式一種是顯示說明(類名::成員),另一種是通過物件進行訪問(物件.成員)
基類的初始化:
派生類建構函式的宣告為: 派生類建構函式(變元表):基類(變元表),物件成員(變元表)
一般格式是
派生類::派生類名(引數總表):基類名(參數列)
// 派生類新增成員的初始化語句
class a;};
class b:a
};
建構函式的執行順序:基類、物件成員、派生類。析構函式的執行順序與建構函式相反。
派生類建構函式和析構函式的定義規則:
1、基類的建構函式和析構函式不能被繼承
2、如果基類沒有定義建構函式或有無參的建構函式, 派生類也可以不用定義建構函式
3、如果基類無無參的建構函式,派生類必須定義建構函式
4、如果派生類的基類也是派生類,則每個派生類只負責直接基類的構造
5、派生類是否定義析構函式與所屬的基類無關
多繼承就是乙個類繼承多個基類,因為多繼承常常會涉及到二義性問題並不好用所以不推薦使用。
class a//基類
void print()
{ cout<<"a1="<感悟:繼承的使用一般是在寫完程式後找到程式中相同的操作然後將其選出來構成乙個類其他類來繼承它。繼承的使用可以大大簡化**縮短**的長度,今後一定會經常用到。
c 中的繼承學習總結
c 的繼承方法,大體上和c 的類似,但是有點區別的,我這裡剛剛初學,因此把重點記錄下。1 派生類繼承了父類,那麼,如果父類的方法和資料都是public,那麼派生類都會繼承。派生類可以直接呼叫父類的資料和成員函式,當然,資料最好是用成員函式來呼叫,做好封裝性。2 基類的初始化 派生類繼承了基類的成員變...
繼承學習總結
繼承就是在乙個已存在的類的基礎上建立乙個新的類,已存在的類稱為 基類 或者叫父類。新建立的類稱為 派生類 乙個新類從已有的類那裡獲得已有的特性,這種現象叫繼承。派生類繼承了父類的全部資料成員和成員函式。我們在建立了乙個類a後,之後可能還需要建立另乙個類b,但是類b是在類a的基礎上新增了一些東西,可能...
繼承學習總結
讓子類的原型物件指向父類的例項,當子類的例項找不到對應的方法時,就按原型鏈往上找。function parent 原型上掛載方法 parent.prototype.getname function function chind 原型鏈繼承 chind.prototype new parent 原型鏈...