今天,是充滿希望的一天。
上學學習了繼承和派生
筆記內容:
class 派生類名:繼承方式? 基類名
{ 派生類中的新成員 }
三種繼承方式:
公有繼承:public
私有繼承:private
保護繼承:protected
派生類繼承了基類的除了構造函數、析構函數、拷貝構造函數和賦值運算符重載函數之外的所有成員,
因此派生類對象由兩部分組成:一部分是由基類繼承的成員,另一部分是派生類新增加的自己特有的成員。
1.當類的繼承方式為公有繼承時,基類的公有和保護成員的訪問屬性在派生類中不變,而基類的私有成員不可訪問。
繼承的本質實際上就是由上到下完全的復制;但是在對內可見性上做了手腳,對外可見性則沒有改變。
c++提供了類的繼承機制,解決了軟件的復用問題。
自動的、滾動式的重用代碼,增強代碼,使得編程方式根本轉變,分析問題、解決問題的模式從功能模式轉向面向對象的結構模式
宇宙萬事萬物都是分類分層的,解決問題可以從事物之間的上下關系中著手.這是繼承引入程序設計的前提.
保持已有類的特性而構造新類的過程稱為繼承。
在已有類的基礎上新增自己的特性而產生新類的過程稱為派生。
被繼承的已有類稱為基類(或父類)。
派生出的新類稱為派生類。
一般情況下,繼承的進程起源于一個基類的定義,
基類定義了其所有派生類的公有特性。
從本質上講,基類具有同一類集合中的公共特性,
派生類繼承了這些屬性,并且增加了自己特有的屬性。
從任何已存在的類繼承的實質就是建造新的派生類。
賦值兼容規則是指需要基類對象的任何地方都可以使用公有派生類的對象來替代。
里氏代換原則:在軟件里面,把基類都替換成它的子類,程序的行為沒有變化。
2.當類的繼承方式為保護繼承時,基類的公有和保護成員都以保護成員身份出現在派生類中,而基類的私有成員不可訪問。
3.當類的繼承方式為私有繼承時,基類的公有和保護成員都以私有成員身份出現在派生類中,而基類的私有成員不可訪問。
protected繼承和private繼承得到的類都不是子類
“凡是父類對象可以出現的地方可以用子類對象代替”,不再適用
繼承類型省略時默認為私有繼承
public繼承使用最多、最重要
繼承時的構造函數:
基類的構造函數不被繼承,需要在派生類中自行聲明。
聲明構造函數時,只需要對本類中新增成員進行初始化,對繼承來的基類成員的初始化由基類完成。
單繼承時的構造函數
派生類名::派生類名(基類所需的形參,本類成員所需的形參):基類名(參數){本類成員初始化賦值語句;};
派生類構造函數執行的一般順序是:
(1)基類構造函數,
(2)派生類對象成員類的構造函數(如果有的話)。
(3)派生類構造函數體中的內容。
釋放派生類對象時,析構函數的執行順序是:
先執行派生類的析構函數,
再執行對象成員類的析構函數(如果派生類有對象成員的話),
最后執行基類的析構函數,其順序與執行構造函數時的順序正好相反.
我也許個愿,許愿星辰腰帶!!!