c 多型 學習筆記

2021-10-04 22:16:07 字數 586 閱讀 8289

多型分為:多型就是多種形態,也就是對不同物件傳送同乙個訊息,不同物件會做出不同的響應。

靜態多型(編譯時的多型):函式的過載,物件名加點操作符

執行成員函式等,都是靜態多型,其中,過載是在形成符號表的時候,對函式名做了區分,從而確定了程式執行到這裡將要執行哪個函式,物件名加點操作符執行成員函式是通過this指標來呼叫的。

函式過載的規則:1.

函式名稱必須相同。

2.引數列表必須不同(個數不同、型別不同、引數排列順序不同等)。

3.函式的返回型別可以相同也可以不相同。

4.僅僅返回型別不同不足以成為函式的過載。

動態多型(執行時的多型):則是利用虛函式實現了執行時的多型,也就是說在系統編譯的時候並不知道程式將要呼叫哪乙個函式,只有在執行到這裡的時候才能確定接下來會跳轉到哪乙個函式的棧幀。

虛函式(子類中的該函式的函式名,返回值,函式引數個數,引數型別,全都與基類的所宣告的虛函式相同,此時才能稱為重寫,才符合虛函式,否則就是函式的過載)

C 學習筆記 多型

引言 1.虛繼承 如果乙個派生類從多個基類派生,而這些基類又有乙個共同的基類,則在對該基類中宣告的名字進行訪問時,可能產生二義性。解決方案 虛繼承宣告,加乙個virtual 關鍵字 2.物件導向新需求 編譯器的做法不是我們期望的 如果用父類指標指向子類物件,再呼叫print 方法,均會呼叫父類中的p...

C 多型學習筆記

看了一堆介紹多型的東西,腦子裡就記得幾個概念了。靜態多型,又叫早繫結,動態多型,應該是叫晚繫結。多型的價值在於使程式更簡潔 更高效。no virtual no 多型,virtual means 已多型。不要覺得問題 很沒用 你還就是說不出來。同樣的命令,不同的物件,做出不同的動作。這就得借助the ...

c 學習筆記 多型

這裡用乙個shape類 rectangle類 cirle類進行說明 virtual shape 虛析構函式 在動態申請空間時候 防止沒析構派生類 virtual double area 虛函式有藏的效果 virtual double zhouchang private double area dou...