C++ Primer Chapter 15-2

1:爲了不讓一個類被繼承,我們可以在類名後加一個關鍵字final 防止它被繼承

2:繼承關係中:基類的指針或者引用可以綁定子類對象上。這就意味着,我們並不知道一個基類指針引用綁定的對象的具體類型了。

3:動態類型靜態類型:靜態類型是指編譯時就知道了類型(聲明或者定義中的類型),而動態類型則是變量或者表達式在內存中的對象類型只有運行時纔會知道

4:只有指針引用纔會有靜態類型動態類型不同。

5:不存在基類向派生類隱式的轉換

6:在基類和派生類的對象之間不存在轉換。

7:當我們用一個派生類對象基類對象初始化或者賦值派生類的基類部分會被留下來,而其他派生類部分都會被忽略成爲切掉

8:所有虛函數需要被定義,因爲編譯器無法確定用哪個虛函數,所以我們不定義就有可能在運行時發現錯誤編譯時發現不了

8:爲啥動態綁定只會出現在指針或者引用上呢?因爲他們都是去某一個內存地址中去解析對象,這是一個動態可變的過程。指針引用都是指明瞭對象內存中位置

9: 只有通過指針引用調用虛函數時,纔會運行時解析該調用,也只有在這種情況纔會發生動態綁定

10:派生類中的虛函數參數列表必須與基類的想同。了返回類型是類本身的指針和引用外,返回類型必須相同

11:如果一個函數被 override 標記了,但是該函數沒有覆蓋已存在的虛函數,此時編譯器將會報錯

12:一個函數也可以被標記爲 final ,表示該函數不可以被覆蓋了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章