c 虛函式的學習

2021-09-23 15:33:42 字數 681 閱讀 6468

1.虛函式

#includeclass base

int main()

類base和son中都有print方法,son繼承base類。在主函式中分別建立base和son的物件,在fun函式中呼叫物件的print()方法。執行結果如下

從結果中可以看出不論傳的是父物件的位址還是子物件的位址,最終呼叫的都是父物件的print()方法。如果希望傳父物件時呼叫父物件print()方法,傳子物件時呼叫子物件的print()方法。則只需要將父類的print方法宣告成虛函式就行。virtual void print(){}。

2.純虛函式

(1)純虛函式的定義

virtual 返回型別 函式名 (《引數》)=0;

有純虛函式的類不能建立物件。在基類中只作方法的宣告,具體的實現要由其子類來實現。

**

c 學習 虛函式

虛函式學習 1.虛函式的關鍵字是virtual.2.如果在父類中成員函式前加上virtual,則如果子類中定義了重名函式,則兩者會產生聯絡.3.virtual函式的子子孫孫都是virtual的,管你在子類中說不說,但好習慣還是加上.4.當向上造型 upcast 用父類指標或引用去訪問子類的虛函式時,...

C 學習(虛函式)

1 靜態聯編,動態聯編 將源 中的函式呼叫解釋為執行特定的函式 塊被稱為函式名聯編 在c語言中,沒有函式的過載,所以,在編譯過程中就可以完成函式的聯編,這種叫靜態聯編。而c 中,虛函式的使用,使得在編譯過程中我們無法得知使用的是哪乙個,所以編譯器 只能在程式執行時選擇正確的虛函式 這種叫動態聯編。2...

C 學習 (03)虛函式 虛指標 虛表

對於類的成員函式,如果在前面加上virtual,那麼這個成員函式就是虛函式,這個類就是帶有虛函式的類。帶沒有虛函式的類,與不帶虛函式的類之間有什麼區別呢?帶有虛函式的模擬不帶虛函式的類會多乙個指標,這個指標就是虛指標,而虛指標指向乙個表,這個表就叫做虛表。虛表裡面存的內容就是虛函式的位址。例子 in...