1. 程式人生 > >多態,C++

多態,C++

mil pad 一個 面向對象設計 代碼 代碼塊 borde 在一起 運算

多態: ★ 多態性是面向對象設計語言的基本特征之一。僅僅是將數據和函數捆綁在一起,進行類的封裝,使用一些簡單的繼承,還不能算是真正應用了面向對象的設計思想。多態性是面向對象的精髓。多態性可以簡單地概括為“一個接口,多種方法”,前面講過的函數重載就是一種簡單的多態,一個函數名(調用接口)對應著幾個不同的函數原型(方法)。
★ 通常是指對於同一個消息、同一種調用,在不同的場合,不同的情況下,執行不同的行為

設計多態的主要目的是定義好一個祖先類,並定義一些虛函數(接口),但在這個接口函數中並不給出具體的實現,或者只是一些簡單的實現,這個工作留給後代去具體實現。


多態與虛函數: 多態性是指同一個操作作用於不同的對象就會產生不同的響應;多態性分為靜態多態性
動態多態性,其中函數重載運算符重載屬於靜態多態性, 虛函數屬於動態多態性。



靜態聯編(靜態綁定): ★程序調用函數時,具體應使用哪個代碼塊是由編譯器決定的。以函數重載為例,C++編譯器根據傳遞給函數的參數和函數名決定具體要使用哪一個函數,稱為聯編(binding)。 ★編譯器可以在編譯過程中完成這種聯編,在編譯過程中進行的聯編叫靜態聯編(static binding)早期聯編(early binding)


動態聯編: 在一些場合下,編譯器無法在編譯過程中完成聯編,必須在程序運行時完成選擇,因此編譯器必須提供這麽一套稱為“動態聯編(dynamic binding)的機制,也叫晚期聯編(late binding)C++通過虛函數來實現動態聯編




多態,C++