Pagkakaiba sa pagitan ng Static at Dynamic Binding

May -Akda: Laura McKinney
Petsa Ng Paglikha: 1 Abril 2021
I -Update Ang Petsa: 7 Mayo 2024
Anonim
Ошибки в сантехнике. Вводной узел в квартиру.
Video.: Ошибки в сантехнике. Вводной узел в квартиру.

Nilalaman


Ang nagbubuklod na samahan ng isang 'function definition' sa isang 'function call' o isang samahan ng isang 'halaga' sa isang 'variable', ay tinatawag na 'binding'. Sa panahon ng pag-iipon, ang bawat 'pag-andar ng pag-andar' ay bibigyan ng isang memorya ng memorya; sa sandaling tapos na ang pagpapaandar ng function, ang kontrol ng pagpapatupad ng programa ay lumilipat sa memorya ng memorya at makuha ang function code na nakaimbak sa lokasyong iyon, isinasagawa ang Binding ng 'function call' sa 'function definition'. Ang pagbubuklod ay maaaring maiuri bilang 'static binding' at 'dynamic binding'.

Kung alam na ito bago mag-runtime, kung saan ang pagpapaandar ay mai-invoke o kung anong halaga ang inilalaan sa isang variable, kung gayon ito ay isang 'static binding'. kung nalalaman ito sa runtime, kung gayon ito ay tinatawag na 'dynamic binding'.

  1. Tsart ng paghahambing
  2. Kahulugan
  3. Pangunahing Pagkakaiba
  4. Konklusyon

Tsart ng paghahambing:

Batayan para sa paghahambingStatic BindingDinamikong Pagbubuklod
Pangyayari sa KaganapanNangyayari ang mga kaganapan sa compile time ay "Static Binding".
Nangyayari ang mga kaganapan sa oras ng pagtakbo ay "Dynamic Binding".
ImpormasyonAng lahat ng impormasyong kinakailangan upang tumawag ng isang function ay kilala sa compile time.Ang lahat ng impormasyon na kailangang tumawag ng isang function ay malaman sa oras ng pagtakbo.
KalamanganKahusayan.Kakayahang umangkop.
OrasMabilis na pagpatay.Mabagal na pagpatay.
Kahaliling pangalanMaagang Pag-iisa.Late Binding.
HalimbawaSobrang pag-andar ng tawag, overloaded operator.Virtual na pag-andar sa C ++, nabalot na pamamaraan sa java.

Mga kahulugan ng Static Binding

Kapag kinikilala ng tagagawa ang lahat ng impormasyong kinakailangan upang tumawag ng isang function o lahat ng mga halaga ng mga variable sa panahon ng pag-compile, ito ay tinatawag na "static na nagbubuklod". Tulad ng lahat ng kinakailangang impormasyon ay kilala bago mag-runtime, pinatataas nito ang kahusayan ng programa, at pinapahusay nito ang bilis ng pagpapatupad ng isang programa.


Ang Static Binding ay gumagawa ng isang mahusay na programa, ngunit tinanggihan nito ang kakayahang umangkop sa programa, dahil ang mga 'halaga ng variable' at 'function calling' ay tinukoy sa programa. Ang Static Binding ay ipinatupad sa isang programa sa oras ng pag-cod.

Ang sobrang pag-load ng isang function o isang operator ay ang halimbawa ng compile-time polymorphism, i.e. static Binding.

Pagpapatupad ng static na nagbubuklod sa C ++ na may isang halimbawa ng labis na karga

#nagsama gamit ang namespace std; labis na karga ng klase {int a, b; pampubliko: int load (int x) {// unang pag-load () function. isang = x; cout << "Ang halaga ng x ay" <katus (); // Nagpapasiya ang pahayag sa itaas kung aling mga pag-andar ng klase ang mai-invoke. p = & d1; // Vlaue ng mga pagbabago sa pointer. p-> funct (); // Nagpapasiya ang pahayag sa itaas kung aling mga pag-andar ng klase ang mai-invoke. p = & d2; // Muli ang vlaue ng mga pagbabago sa pointer. p-> funct (); // Nagpapasiya ang pahayag sa itaas kung aling mga pag-andar ng klase ang mai-invoke. bumalik 0; }

Narito ang halaga ng pointer ay nagbabago habang ang programa ay naisakatuparan at ang halaga ng pointer ay nagpapasya kung aling pag-andar ng klase ang mai-invoke. Kaya narito, ang impormasyon ay ibinibigay sa oras ng pagtakbo, nangangailangan ng oras upang itali ang data na nagpapabagal sa pagpapatupad.


  1. Ang mga kaganapan na naganap sa pag-compile ng oras tulad, isang function code ay nauugnay sa isang function na tawag o pagtatalaga ng halaga sa isang variable, ay tinatawag na static / maagang Pag-iisa. Sa kabilang banda, kapag ang mga gawaing ito ay nakamit sa panahon ng pag-runtime, tinawag silang pabago-bago / huli na Pagbubuklod.
  2. Ang 'Efficiency' ay nagdaragdag sa static Binding, dahil ang lahat ng data ay natipon bago ang pagpapatupad. Ngunit sa pabago-bagong Pagbubuklod, ang data ay nakuha sa runtime upang maaari naming magpasya kung anong halaga upang magtalaga ng isang variable at kung saan gumana upang maimbitahan ang runtime na ito ay ginagawang 'kakayahang umangkop'.
  3. Ginagawa ng 'Static binding' ang pagpapatupad ng isang programa na 'mas mabilis' dahil ang lahat ng data na kinakailangan upang maisagawa ang isang programa ay kilala bago ipatupad. Sa data na 'dynamic na nagbubuklod' na kinakailangan upang maisagawa ang isang programa ay kilala sa tagatala sa oras ng pagpapatupad na kumukuha ng oras upang magbigkis ng mga halaga sa mga nagpapakilala; samakatuwid, ginagawang mas mabagal ang pagpapatupad ng programa.
  4. Ang Static Binding ay tinatawag ding maagang Paggapos dahil ang code ng pag-andar ay nauugnay sa tawag sa pag-andar sa panahon ng pag-compile ng oras, na mas maaga kaysa sa dynamic na Binding kung saan ang function code ay nauugnay sa function ng tawag sa panahon ng runtime samakatuwid ito ay tinatawag ding huli na pagbubuklod.

Konklusyon:

Gayunpaman, napagpasyahan namin na kapag mayroon kaming naunang kaalaman sa mga halaga ng variable at pag-andar ng pagtawag, inilalapat namin ang static na nagbubuklod. Sa kabaligtaran, sa dinamikong Pagbubuklod, nagbibigay kami ng lahat ng impormasyon sa oras ng pagpapatupad.