捆綁

通信術語

捆綁也稱為綁定(binding),為了將對象置於運行狀態,允許調用它所支持的操作。對象可在運行時進行捆綁,也可在編譯時進行捆綁,前者稱為後期綁定或動態綁定,後者稱為靜態綁定。

概述


函調鏈函碼程稱綁()。靜態綁(staticbinding)在編澤時確定,即存編澤時即可確定obj一>func()調用的書是哪一個func()。動態綁定(dynamicbinding)則必須到程序運行時才能確定,派生類中重定義了基類的虛函數func()后,指向基類對象的指引obj以obj->func()形式調用的是基類中定義的func()還是派生類垂定義的func()將根據obj運行期間所指向對象的類型決定。函數重載時使用的是靜態綁定,岡為編譯程序在編譯時就可根據重載函數的不同參數形式來確定調用哪一個函數體。

設計合適的綁定方式


靜態綁稱早綁( ),味決哪版函調息程序編譯,諸c++語言預設的函數調用方式、重載函數調用、重載運算符調用等都採用靜態綁定方式。靜態綁定方式的主要優點是執行效率高、佔用內存少,其缺點是程序缺乏靈活性。
態綁義稱晚綁( ),味確調哪版函程序執決。態綁繼承虛函,優允程序靈,例支持共允程序義式,構造擴充類庫;其缺點是稍微降低了程序執行的效率,並使得程序的動態結構不同於靜態結構,降低了程序的可理解性。
一個指針或引用時所指定的類型被稱為靜態類型,在程序運行期問一個指針或指引時所實際指向或引用的對象的類型被稱為這個指針或引用的動態類型。靜態類型用於編譯程序檢查類型的合法性;動態類型只能是靜態類型的子類型,被運行系統用於動態綁定。儘管動態綁定帶來的效率損失是很小的,也不應該濫用動態綁定。動態綁定應該在明確地提高了程序可重用性與可擴充性的情況下才運用。