靜態聯編
定義:
靜態聯編又稱靜態束定、早期聯編、前期聯編。
靜態聯編是指聯編工作是在程式編譯連線階段進行的,靜態聯編又稱早期聯編,因為這種聯編是在程式開始運行之前完成的。在程式編譯階段進行的這種聯編又稱靜態束定,在編譯時就解決了程式中的操作調用與執行該操作代碼間的關係,確定這種關係又被稱為束定,編譯時束定又稱為靜態束定。
特點:
調用速度快,效率高。
例子:
程式結果為:
the area of the point p is 0
the area of the circle c is 19.634937
這就是靜態聯編,編譯器在程式運行前就知道什麼函式做什麼事。
動態聯編
定義:
動態聯編又稱動態關聯、動態束定、後期聯編、晚期聯編。
動態聯編是指編譯程式在編譯階段並不能確切地知道將要調用的函式,只有在程式執行時才能確定將要調用的函式,為此要確切地知道將要調用的函式,要求聯編工作在程式運行時進行,這種在程式運行時進行的聯編工作被稱為動態聯編。C++規定:動態聯編是在虛函式的支持下實現的。
動態聯編必須包括以下方面:
1、成員函式必須聲明為virtual
2、如果基類中聲明了為虛函式,則派生類中不必再聲明。
調用方式:
通過對象的指針或引用調用成員函式,或通過成員函式調用,反之就無法實現動態聯編。
特點:
靈活,問題抽象性和問題的易維護性。