C++ Primer 5th笔记(chap 15 OOP)概述
生活随笔
收集整理的這篇文章主要介紹了
C++ Primer 5th笔记(chap 15 OOP)概述
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
面向對象程序設計的核心思想:
- 數據抽象:將類的接口與實現分類。
- 繼承:可以定義相似的類型并對其相似關系建模。
- 動態綁定:我們能用同一段代碼分別處理不同的對象。相同函數,根據動態綁定的對象實質進行區別。在運行時選擇函數的版本,所以動態綁定有時又被稱為 運行時綁定
1. 繼承Inheritance
通過繼承聯系在一起的類構成一種層次關系,通常在層次關系的根部有一個 基類base class,其他類則直接或間接的從基類繼承而來,這些繼承得到的類稱為 派生類derived class。
派生類可以繼承其基類的成員,但是針對特定的操作,派生類可以提供自己新的定義,還可以覆蓋從基類繼承而來的舊定義。
2. 動態綁定dynamic binding
當使用指針或者引用調用虛函數時,該調用將動態綁定,根據引用或指針所綁定的對象類型不同,該調用可能執行基類的版本,也可能執行某個派生類的版本。
- 靜態類型:表達式的靜態類型在編譯時總是已知的,它是變量聲明時的類型或表達式生成的類型。
- 動態類型:變量或表達式表示的內存中的對象類型到運行時才可以知道。
- 如果表達式既不是引用也不是指針,則它的動態類型永遠與靜態一致。
2.1 虛函數virutal function
基類希望它的派生類各自定義適合自身版本,將這些函數聲明為虛函數;派生類必須通過派生類列表明確指明他是從那個基類繼承而來的。即 基類希望派生類能進行覆蓋的函數
2.2 在 C++ 語言中,使用基類的引用或者指針調用一個虛函數時將發生動態綁定。
eg. C++ 11 新標準允許派生類顯示地注明它將使用哪個成員函數改寫基類的虛函數,具體措施是在函數的形參列表之后再加一個 override 關鍵字。
總結
以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 15 OOP)概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Primer 5th笔记(cha
- 下一篇: C++ Primer 5th笔记(cha