Razlika med statičnim in dinamičnim vezanjem
Vsebina
- Primerjalna tabela:
- Opredelitve statične vezave
- Izvajanje statične vezave v C ++ s primerom preobremenitve
- Zaključek:
Vezava „definicije funkcije“ na „funkcijski klic“ ali povezavo „vrednosti“ s „spremenljivko“ se imenuje „vezava“. Med prevajanjem se vsaki 'definiciji funkcije' dodeli spominski naslov; Takoj, ko je klicanje funkcije opravljeno, se nadzor nad izvajanjem programa premakne na ta pomnilniški naslov in izvrši funkcijsko kodo, shranjeno na tem mestu, to je vezava funkcije klica na 'definicijo funkcije' Vezava se lahko razvrsti kot „statična vezava“ in „dinamična vezava“.
Če je pred izvajanjem že znano, katera funkcija se bo priklicala ali katera vrednost je dodeljena spremenljivki, potem je to "statična vezava". če se pozna med izvajanjem, se imenuje "dinamična vezava".
- Primerjalna tabela
- Opredelitev
- Ključne razlike
- Zaključek
Primerjalna tabela:
Osnove za primerjavo | Statična vezava | Dinamična vezava |
---|---|---|
Pojav dogodka | Dogodki, ki se zgodijo v času prevajanja, so "statična vezava". | Dogodki, ki se zgodijo v času izvajanja, so "Dynamic Binding". |
Informacije | Vse informacije, potrebne za klic funkcije, so znane ob prevajanju. | Vse informacije, ki jih je treba poklicati, se pozanimajo v času izvajanja. |
Prednost | Učinkovitost. | Prilagodljivost |
Čas | Hitra izvedba. | Počasna izvedba. |
Nadomestno ime | Zgodnja vezava. | Pozno vezava. |
Primer | Preobremenjen funkcijski klic, preobremenjeni operaterji. | Navidezna funkcija v C ++, prevladajoče metode v javi. |
Opredelitve statične vezave
Ko prevajalnik v času prevajanja potrdi vse informacije, potrebne za klic funkcije ali vse vrednosti spremenljivk, se imenuje „statična vezava". Ker so vse zahtevane informacije znane pred izvajanjem, to poveča učinkovitost programa in poveča hitrost izvajanja programa.
Statično vezanje naredi program zelo učinkovito, vendar zmanjšuje prilagodljivost programa, saj sta v programu vnaprej določene vrednosti spremenljivke in funkcijski klici. Statična vezava se izvaja v programu v času kodiranja.
Preobremenitev funkcije ali operaterja je primer polimorfizma v prevajalnem času, to je statične vezave.
Izvajanje statične vezave v C ++ s primerom preobremenitve
#include Tu se vrednost kazalca spreminja, ko se program izvaja in vrednost kazalca določa, katera funkcija razreda bo priklicana. Torej, tukaj so informacije na voljo v času izvajanja, potreben je čas, da se vežejo podatki, kar upočasni izvedbo. Vendar sklepamo, da ko predhodno poznamo vrednosti klic spremenljivke in funkcije, uporabimo statično vezavo. Nasprotno, v dinamičnem vezavi zagotavljamo vse informacije v času izvedbe.
Zaključek: