15.3轉換與繼承
15.3.1 派生類到基類的轉換
1.引用不同於轉換物件
1.將物件傳遞給希望接受引用的函式時,引用直接繫結到物件,看起來再傳遞物件,實際上實參是對該物件的引用,物件未被複製。轉換不會改變原派生類物件。
2.將派生類物件傳遞給希望接受基類型別物件的函式時(不是引用),情況完全不同,形參是固定的,--在編譯和執行時形參都是基類型別物件。如果用派生型別物件呼叫這種函式時,則派生類物件的基類部分被複製到形參。
2.用派生類物件對基類物件進行初始化或賦值
對基類物件進行初始化或者賦值,實際上是在呼叫函式:初始化呼叫建構函式,賦值時呼叫賦值操作符。
15.3.2基類到派生類的轉換
15.4 建構函式和複製控制
15.4.2 派生類建構函式
1.合成的派生類的預設建構函式
2.定義預設建構函式
3.向基類建構函式傳遞實參
子類建構函式中初始化呼叫父類的建構函式,就能初始化繼承的成員
建構函式初始化列表為類的基類和成員提供初始值,它並不指定初始化的執行次序,首先初始化基類,然後根據宣告次序初始化子類的成員。
4.在派生類建構函式中使用預設實參
5.只能初始化直接基類
15.4.3 複製控制和繼承
指標類需要自定義自己的複製控制來管理這些物件。
1.定義派生類複製建構函式
2.派生類賦值操作符
3.派生類析構函式
自己的析構函式負責析構自己的成員,同時,編譯器會自動呼叫父類的析構函式,釋放記憶體,同時,析構函式執行方式和建構函式的初始化方式相反。
15.4.4 虛析構函式
15.5 繼承情況下的類作用域
1.名字查詢時在編譯時發生
2.名字衝突與繼承
直接呼叫類作用符
3.作用域和成員函式
15.5.4虛函式與作用域
名字查詢與繼承
15.6 純虛函式
15.7 容器與繼承
在容器中時,子類物件在賦值給父類物件時會被切掉,所以容器與通過繼承相關的型別不能很好的融合。
15.8控制代碼類與繼承
c 物件導向程式設計 物件導向
什麼是物件導向 是對現實世界理解和抽象的方法。物件導向程式設計的特點 易維護,易擴充套件,靈活性好,重用 類 對事物的抽象定義,即事物具有的共同特徵和行為。物件 即對類進行例項 類是抽象的,物件是具體的 類的定義 語法 訪問修飾符 class 類名類的成員 包括字段,屬性,方法,常量,事件和索引器等...
C 物件導向程式設計
1.1 類與物件 物件 object 是類 class 的乙個例項 instance 如果將物件比作房子,那麼類就是房子的設計圖紙。所以物件導向程式設計的重點是類的設計,而不是物件的設計。類可以將資料和函式封裝在一起,其中函式表示了類的行為 或稱服務 類提供關鍵字public protected 和...
C 物件導向程式設計
物件導向程式設計 以物件為中心,將資料和方法封裝在一起。三要素 抽象繼承 多型 五個基本原則 單一職責原則 就乙個類而言,應該有且僅有乙個引起它變化的原因。開放 封閉原則 是說軟體實體 類 模組 函式等等 應該可以擴充套件,但是不可修改。黎克特制替換換原則 子類應當可以替換父類並出現在父類能夠出現的...