Pagkakaiba sa pagitan ng Static at Dynamic Binding
Nilalaman
- Tsart ng paghahambing:
- Mga kahulugan ng Static Binding
- Pagpapatupad ng static na nagbubuklod sa C ++ na may isang halimbawa ng labis na karga
- Konklusyon:
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'.
- Tsart ng paghahambing
- Kahulugan
- Pangunahing Pagkakaiba
- Konklusyon
Tsart ng paghahambing:
Batayan para sa paghahambing | Static Binding | Dinamikong Pagbubuklod |
---|---|---|
Pangyayari sa Kaganapan | Nangyayari ang mga kaganapan sa compile time ay "Static Binding". | Nangyayari ang mga kaganapan sa oras ng pagtakbo ay "Dynamic Binding". |
Impormasyon | Ang 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. |
Kalamangan | Kahusayan. | Kakayahang umangkop. |
Oras | Mabilis na pagpatay. | Mabagal na pagpatay. |
Kahaliling pangalan | Maagang Pag-iisa. | Late Binding. |
Halimbawa | Sobrang 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 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. 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.
Konklusyon: