動多型與靜多型

2022-05-12 22:42:20 字數 387 閱讀 2793

表現動多型的函式只處理特定類系列的物件,乙個類層次的結構,而且基類必須是多型類,乙個類系列配乙個表現多型的函式。而模板表現的多型不是在執行中進行型別識別的,而是在編譯時刻進行型別識別的,因而模板實現的多型為靜多型。

對於抽象程式設計來說,或許使用動多型更好一點,他可以將類實現的源**徹底隱蔽,無需提供給使用類的使用者,以實現軟體的保護。而靜多型程式設計的**由於程式結構的影響,還必須放在標頭檔案中作為模板使用之前宣告和定義。

從效能來看,靜多型由於動多型,因為動多型是基於虛函式實現的機制,有間接的訪問迂迴**,而靜多型沒有這種開銷。

從錯誤檢測來說,乙個實體如果不具備某種操作,而程式又動態的繫結該操作,則必須在執行中才可以發現錯誤。而靜多型程式設計在編譯時檢測型別匹配的,若果在例項化過程中發現乙個實體沒有的操作,會及時報錯。

虛函式和動多型

動態聯編是指在執行時才將函式實現和函式呼叫關聯,因此也叫執行時繫結或者晚繫結。對函式的選擇不是基於指標 引用 而是基於物件型別,不同的物件型別將做出不同的編譯結果。c 中一般情況下聯編也是靜態聯編,但是一旦涉及到多型和虛函式就必須要使用動態聯編了。假設我們什麼都不知道,基類 派生類,虛函式 非虛函式...

C 多型 靜態多型與動態多型

多型 顧名思義,多型就是多種形態,也就是對不同物件傳送同乙個訊息,不同物件會做出不同的響應。並且多型分為靜態多型和動態多型。靜態多型就是在系統編譯期間就可以確定程式執行到這裡將要執行哪個函式,例如 函式的過載,物件名加點操作符執行成員函式等,都是靜態多型,其中,過載是在形成符號表的時候,對函式名做了...

多型與多型性

1.什麼是多型 多型指的是同一種 類事物的不同形態 2.為何要用多型性 1 增加了程式的靈活性 2 增加了程式的可擴張性 多型性 分為靜態多型性和動態多型性 多型性 在多型的背景下,可以在不用考慮物件具體型別的前提下而直接使用物件 多型性的精髓 統一 3.如何用多型 class animal def...