多型性和虛函式

2021-08-04 04:55:59 字數 1040 閱讀 9832

1  向上型別轉換

取乙個物件的位址並將其作為基類的物件來使用

2 **

函式體和函式呼叫相聯絡稱為**

遭**:在程式執行之前

晚**:在程式執行時

3  虛函式

為了引起晚**,需要在基類使用vitual修飾函式

4 c++如何實現晚**

vtable

編譯器放置特定的虛函式位址

在每個虛函式類中,編譯器秘密的放置乙個指標。

指向這個vtable

5抽象基類和純虛函式

基類只作為乙個介面。

純虛函式:基類至少加入乙個純虛函式

當繼承乙個抽象類時,必須實現所有的純虛函式否則繼承的類也會是乙個純虛函式

6rtt1 執行時型別辨認

7 物件切片

傳值8 過載和重定義

重新定義乙個基類的過載函式會隱藏多有該函式的其他基類版本

1 不許改變過載函式的返回值

2  可以改變返回指標和引用

9 虛函式

vptr和vtable

設定vptr是建構函式的工作。

預處理器沒有訪問和類的概念

10 建構函式的呼叫次序

1 確保兌現被正確的建立

2 派生類只訪問自己的成員,不訪問基類成員

3 11 虛函式的呼叫發生在程式執行時

這時編譯器不知道這個物件屬於這個成員函式屬於的類別

虛機制在建構函式中不起作用

12 構造函式呼叫時只知道建構函式所屬的類。完全不知道這個類屬於其他的類別

13 建構函式被呼叫後才有vtable

14 析構函式可以為虛函式

自最晚派生的類開始,並像上的基類

15 純虛析構函式

必須為純虛析構函式提供乙個函式體

16 析構函式的虛機制

17 建立基於物件的繼承

單根繼承

18 運算子過載

19 向下型別轉換

dynamic_cast 顯示轉換

安全型別轉換

20 返回正確的位址,錯誤的話返回0

多型性和虛函式

11.27 多型指的是同樣的資訊被不同型別的物件接收導致不同的行為,包括 靜態多型性和動態多型性。靜態多型性包括 函式過載和運算子過載 動態多型主要 由虛函式實現。虛函式宣告 virsual 型別說明符 函式名 參數列 純虛函式 virtual 函式型別 函式名 參數列 0 在派生類中定義 抽象類 ...

多型性和虛函式

多型性是物件導向程式設計的乙個重要特徵。c 支援多型性,在 c 程式設計中能夠實現多型性。1 乙個典型的例子 先建立乙個 point 點 類,包含資料成員x,y 座標點 以他為基類,派生出乙個 circle 圓 類,增減資料成員 r 半徑 再以 circle 類為直接基類,派生出乙個 cylinde...

多型性和虛函式

目錄 什麼是多型性 乙個典型的例子 利用虛函式實現動態多型性 虛函式的作用 靜態關聯和動態關聯 什麼情況下應當宣告虛函式 虛析構函式 純虛函式與抽象類 純虛函式 抽象類乙個綜合的例子 向不同的物件傳送同乙個訊息,不同的物件在接收時會產生不同的行為 即方法 從系統實現的角度來看,總共分為兩類 靜態多型...