捆綁(通信術語)

捆綁(通信術語)

本詞條是多義詞,共5個義項
更多義項 ▼ 收起列表 ▲

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

基本介紹

  • 中文名:捆綁
  • 外文名:binding
  • 別稱:綁定
  • 定義:運行狀態,運行調用支持的操作
  • 分類:動態綁定和靜態綁定
  • 套用學科:計算機原理
概述,設計合適的綁定方式,

概述

將一個函式調用連結上相應的函式體代碼的過程稱為綁定(binding)。靜態綁定(staticbinding)在編澤時確定,即存編澤時即可確定obj一>func()調用的書是哪一個func()。動態綁定(dynamicbinding)則必須到程式運行時才能確定,派生類中重定義了基類的虛函式func()後,指向基類對象的指引obj以obj->func()形式調用的是基類中定義的func()還是派生類垂定義的func()將根據obj運行期間所指向對象的類型決定。函式重載時使用的是靜態綁定,岡為編譯程式在編譯時就可根據重載函式的不同參數形式來確定調用哪一個函式體。

設計合適的綁定方式

靜態綁定又稱早期綁定(early binding),這意味著決定哪個版本的函式將被調用的全部信息在程式被編譯時就已知道,諸如c++語言預設的函式調用方式、重載函式調用、重載運算符調用等都採用靜態綁定方式。靜態綁定方式的主要優點是執行效率高、占用記憶體少,其缺點是程式缺乏靈活性。
動態綁定義稱晚期綁定(1ate binding),它意味著確定調用哪個版本的函式是在程式執行時才決定的。動態綁定通過繼承與虛函式實現,主要優點是允許程式中有更大的靈活性,例如用來支持公共接口並允許程式設計師利用這些接口定義自己的實現方式,這樣就有利於構造可重用與可擴充的類庫;其缺點是稍微降低了程式執行的效率,並使得程式的動態結構不同於靜態結構,降低了程式的可理解性。
一個指針或引用時所指定的類型被稱為靜態類型,在程式運行期問一個指針或指引時所實際指向或引用的對象的類型被稱為這個指針或引用的動態類型。靜態類型用於編譯程式檢查類型的合法性;動態類型只能是靜態類型的子類型,被運行系統用於動態綁定。儘管動態綁定帶來的效率損失是很小的,也不應該濫用動態綁定。動態綁定應該在明確地提高了程式可重用性與可擴充性的情況下才運用。

相關詞條

熱門詞條

聯絡我們